質問: レトロゲー「虹のシルクロード」 初投稿です。数学は苦手なので、猛者の皆様に答えて頂きたく参上しました。できるだけ詳細に伝えたいため長文ですが、お付き合い頂ければ幸いです。 今、fcの「虹のシルクロード」というrpgをやっております(ちなみに3周目です)。このゲームの肝は、敵を倒してもお金は獲得できず、主人公が少ない元手から様々な商品を仕入れ、別の町へ赴いて転売し、その差益で、より高価な商品を仕入れたり、武具を揃えたり、傭兵を雇ってイベントを攻略していくという独自システムです。そこでその転売についての質問です。以下数字が複雑ですが、ゲームに忠実に再現したものなのでご勘弁を。 ラオス バンコク 胡椒 2385g 2635g 唐辛子 3265g 3015g 楽器 4275g 3925g 香水 4620g 4970g 補足 これらはそれぞれ1単位の値段です、合計で55単位までしか持てません、もちろん購入量が55に満たなくても何ら問題ありません。 このゲームは売値も買値も同額です。 今回はラオスで仕入れ、バンコクで売るルートについて考えて頂きます。 ご覧のようにラオスで胡椒を購入し、バンコクで売れば差益は1単位当り250g、一方香水の売却益は350gですね。故に4620×55である、254100gあれば55単位丸々香水を購入し、売却益は最大になります。しかし200000gしかない場合、胡椒と香水をどう組み合わせて購入すれば利益を最大化できますか? 立式(普遍性を持たせるため文字で表記して頂けると、より助かります)と「なぜそうなるのか?」の解説をお願いします(^∧^) 中学の知識で解けそうで解けなさそうな、式は一つで済みそうで済まなそうな感じが、モヤモヤして本編手につかないッス(^_^;)
回答: 計画数学という分野でありそうな気がします。 ラ バ 差 買う個数 胡椒 a1 b1 c1 x1 唐辛 a2 b2 c2 x2 楽器 a3 b3 c3 x3 香水 a4 b4 c4 x4 というように文字を使ってお金と差額、買う個数を表します。 また所持金をm、購入限界量をkとします。 ここで条件 1、x1*a1 + x2*a2 + x3*a3 + x4*a4 <= m 2、x1+x2+x3+x4 <= k の上で次の式の値zを最大化することを考えます 「z = c1*x1 + c2*x2 + c3*x3 + c4*x4」 以上が一般化の式で、あとはこれをとくのですが (一応、ci<0 ならば xi=0 は明らか) 今回の程度なら高校数学とかで解けますが もっと大きくなってくると大変かもしれません。 今回の場合はc2,c3<0なので変数が2で高校の図形を使った 線形計画法で解けます★ z=250*x1 + 350*x4 2385*x1 + 4620*x4 <= 200000 x1 + x4 <= 55 これはグラフで(x1、x4)を(x、y)平面だと思って具体的に 書き込んでというやり方です(後は大丈夫かと)