アプリ版:「スタンプのみでお礼する」機能のリリースについて

次のプログラミングを教えてください(モンテカルロシュミレーション)
果物屋はリンゴを農家から1個45円で買い、1個110円で売る。

毎日の終わりに農家は、売れなかったリンゴ1個につき20円ずつ果物屋に支払う。
リンゴの毎日の需要の確率分布は、
0.20-80個
0.30-90個
0.50-100個

モンテカルロシュミレーション法を用いて、果物屋が毎日注文すべきリンゴの最適個数とそのときの利益を求めよ

わかるだけでもいいです。
どうかよろしくお願いします!

A 回答 (2件)

一番の問題は


「モンテカルロシュミレーション」とはなにか
のような気がしますが>#1. わざわざ「シュミレーション」と書いてあるということは「シミュレーション」とは違う何かのように読めるんだけど, それがなにかさっぱりわからない.

ちなみにいうと「最適解を探せ」といわれても「期待値として最良」しか求められないし, それでいいならわざわざシミュレーションなどしない.
    • good
    • 0

うーん、面白そうな問題なんですが、生憎C/C++は得意じゃないんだよなぁ。



それはさておき。
ちょっと不可解な点が何箇所かあります。

1. Playerの持ち金はないのか?

つまり、初期資金が無くても構わない、って事なんですかね?(つまり、持ち金0円からスタートしてマイナスになっても構わない?)

2. リンゴを買う個数の上限、下限が分からない。

例えば100個以上(損する事が分かってても)購入する事は可能なのか。あるいは0個でもいいのか、ですね。
くだらない、って思うかもしれませんが、こう言う辺りがプログラムでは非常に大事な「仕様」だったりします。

3. 本当に何を求めたいかが分からない。

確率分布が次のように設定されていますよね。

0.20-80個
0.30-90個
0.50-100個

この問題をマトモに捉えると、例えば1/2の確率でリンゴが100個売れるわけですが、80個注文した場合でも100個内なんで売れるわけですよ。
と言う事は、別にモンテカルロシミュレーションせんでも毎回80個注文しておけば「絶対損はしない」わけです。果たしてこれが題意なんですかね?
そうじゃなくって、多分「最大利益を見込める」要は「最適解を探せ」って問題なんじゃないですか?
そうするとリンゴの個数を80個以上100個以下の中で最大利益を上げる為の「注文個数」を探せ、と問題がかなり難しくなりますね。
果たしてどういう意図なんでしょうか。

ちなみに、これって大昔に有名だったApple IIなんかのゲーム、レモネードスタンドの応用だと思います。

レモネードスタンド:
https://archive.org/details/Lemonade_Stand_1979_ …

これはBASICで書かれたソースコードが公開されています。

http://www.strout.net/files/lemonade-source.zip

この辺参考にしてみたら如何でしょうか。

また、日本でも似たようなゲームに「イスカンダルのトーフ屋ゲーム」と言うものがあります。

イスカンダルのトーフ屋ゲーム:
http://vivi.dyndns.org/tofu/tofu.html

C/C++言語で書かれた版は存在しませんが、適当に公開されているソースを漁って、基本的な書き方を見てみれば良いと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!