PS版DQ4 3章前掛け転売についてちょっと本気出して考えてみた
きっかけはこれharapan.exblog.jp
1年以上前、DQ3のReTAの調べものだかなんだかしてた時に偶然見つけた記事。
僕がPS4RTA始めたときには、前掛け転売のボーダーは1750Gみたいなのが通説になっていたけど、
この記事を見て「あ、実はボーダー下げて仕入れ増やしちゃってもいい感じなの?」と思ったのを覚えているが、それ以来しばらく詳しい調査はしていなかった。
1. じじいのあたまのめかにずむ
3章のボンモールにいる防具じじいの買い取り金額決定は以下のようになっている。
- [0,16)の一様整数乱数を引く。
- 乱数=0だったらボケ処理、それ以外だったら通常の処理になる。(つまりボケる確率は1/16)
- ボケ処理の場合はSR$0x80117e7c(買値*1.5, 買値*2)がcallされ、[買値*1.5, 買値*2]のほぼ一様な整数乱数が返ってくる。
- 通常処理の場合はSR$0x80117e7c(買値*0.75 買値*1.25)がcallされ、[買値*0.75, 買値*1.25]のほぼ一様な整数乱数が返ってくる。
- 返ってきた乱数を売却額とする。
2. しみゅれ~とけっか
仕組みが分かればシミュレータが組める。
早速実装して、試行回数5万回で調査
ボーダーを1500G~1800Gの50G刻み、必要収入金額(最初の前掛け9個売却スタートの時点の金額から稼がなければいけない金額)を15000G~17500Gの500G刻みでシミュレートし、最初の前掛け9個売却スタートから必要金額稼ぐまでにかかった平均時間を取った。
各パラメータはパンダさんの記事通り、以下のようにしている。
- 売却キャンセル1回分の時間: 3.2s
- 仕入れ1回分の時間: 49s
結果は以下の通りであった。
ボーダー[G]\必要収入[G] | 15000 | 15500 | 16000 | 16500 | 17000 | 17500 |
---|---|---|---|---|---|---|
1500 | 63.726652s | 83.671864s | 102.999864s | 126.046892s | 144.760364s | 163.968864s |
1550 | 63.516972s | 80.639696s | 99.095764s | 122.060024s | 142.025012s | 160.519688s |
1600 | 70.8178s | 78.45748s | 98.012348s | 118.291296s | 142.37878s | 160.922388s |
1650 | 83.6912s | 84.438796s | 100.29976s | 115.452392s | 143.56992s | 165.102504s |
1700 | 102.133312s | 102.133312s | 106.7654s | 119.600952s | 142.54478s | 168.9146s |
1750 | 131.272768s | 131.272768s | 131.284732s | 139.797064s | 150.668804s | 174.821684s |
1800 | 183.177472s | 183.177472s | 183.177472s | 183.837488s | 186.639508s | 197.06948s |
各必要収入額における平均時間の最小値を赤字にしてある。
3. まとめ
3章の前掛け転売では、必要収入が15000G,17000G,17500G付近のときはボーダー1550Gで、15500G,16000G付近の時はボーダー1600Gで、16500G付近のときはボーダー1650Gで売却するのが最適である。
めでたしめでたし。
そんなわけはない。
4. ばいきゃくじかんのぶんぷ
平均時間だけ見ていたのでは、平均こそ速いかもしれないがその実売却時間はブレブレで安定しないみたいなものが分からない。
また、3章は運要素の強い2章終了直後の章であるため、対戦などではタイム差などに応じて取るべき選択肢が変わってくる。
平均時間の最小だけを見てボーダーを選んだものの実はタイムがブレブレだったりする場合には、せっかく2章終了時でリードしていても「じじいツン引いたから遅れて後ろに追いつかれたじゃねえかよクソが」とか言って、挙句の果てにはコントローラーが投げつけれらたりROMが責任を押し付けられたりしてしまう。おおかわいそうに、コントローラーやROMはわるくないのだ・・・
ということで売却図の分布を見てみよう。
全ての分布図を全て載せるわけにもいかないので、抜粋してみてみることにする。
まずは必要金額17500G時の売却時間の確率密度と累積分布。
上の図が確率密度、下の図が累積分布になる。
確率密度を見ると「ある売却時間で終わる確率は何%か」が、累積分布をみると「ある売却時間以下で終わる確率は上位何%か」がわかる。
また、平均だけでなく標準偏差も出してみよう。
標準偏差の値が高いほど、売却時間がぶれやすいことを表す。
ボーダー[G] | 標準偏差 |
---|---|
1500 | 56.15782287 |
1550 | 55.21510188 |
1600 | 59.86279681 |
1650 | 70.60325696 |
1700 | 82.75208663 |
1750 | 88.75131105 |
1800 | 79.92613876 |
なんと必要収入17500Gの場合は、通説となっているボーダー1750Gが一番標準偏差が高く、売却時間がぶれやすいという驚きの結果が得られた。
実際確率密度の図を見てみると、分布がブレブレなのが良くわかる。
一番平均時間が小さいボーダー1550Gは標準偏差も最小となっている。
つまり仕入れを1回増やす覚悟でボーダー下げてどんどん売った方が速くなるということが分かったと思う。
ボーダー1600Gも売却時間150s以内の速い時間が出やすいうえ、極端に遅れることはなさそうなので選択肢に入れられそうだ。
続いて、必要金額16000Gの場合も見てみる。
鋼鎧がボケたりするとこの辺になってくるだろうか。
標準偏差は以下の通り。
ボーダー[G] | 標準偏差 |
---|---|
1500 | 54.23222707 |
1550 | 55.13257586 |
1600 | 54.12659886 |
1650 | 50.08340547 |
1700 | 39.0092605 |
1750 | 38.53368925 |
1800 | 56.27160925 |
平均時間が最小なのはボーダー1600Gであるが、ボーダー1500G~1650Gあたりではボーダー1700G以上に比べて標準偏差が高い。
これは分布図を見ればわかると思うが、仕入れが必要な可能性が増えるために、その場合のタイムロスが足を引っ張っているためだと思う。
ボーダーが1700Gでは平均時間がボーダー1600Gに比べて8sほど上がるが、標準偏差が一気に下がりタイムの安定性が期待できる。
また通説となっているボーダー1750Gは、標準偏差こそ最小値だが平均売却時間が非常に大きくなり、実際はボーダー1700Gに対してほぼ劣っていることが分かる。鋼鎧がボケたらまずボーダーは下げていいだろう。
載せられなかったデータは以下のURLにアップロードしておく。
PSDQ4_resale.xlsx(PSDQ4_resale.xlsx) ダウンロード | DQRTA | uploader.jp
5. はがねのよろいぼけのかそくど
もう一つ、2節の平均売却時間からわかることがある。
最小平均時間周辺のボーダー周辺においては、必要な収入金額が500G下がるごとに平均売却時間が約20sほど下がることが分かる。
3章の序盤に化けキツネからもらった鋼の鎧を転売するのだが、これがボケるかボケないかで約1725Gの収入差が出てくる。(実際にはボケない場合は金額を吟味しているのでもう少し下がるが)
そうすると、鋼の鎧が運よくスムーズにボケると(なんだこの表現)約1分ほどの加速になることがわかる。
またこれも平均値だけでの話になるが、鋼の鎧がボケるまでにかかる時間は約51.2sであるため、鋼の鎧はボケ待ちした方が期待値としてはタイムが速くなる可能性もある。
これについても詳しく調査したいが今回は面倒なのでしない。
6. こんくる~じょん
各必要金額に応じて売却時間の分布と標準偏差を求めた。
欲しいタイムに応じて、各プレイヤーが柔軟にボーダーラインを選択してあげるとよい。
また、鋼の鎧がボケると約1分の加速になることも分かった。
終わりたい。
7. にんげんはかしこい
今回の調査では売却金額に関わらずボーダーラインはずっと一定のままという条件で行っているが、
実際の場合には前半の売却金額を見て以降のボーダーラインを変動させられるはずである。
その場合、「仕入れ挟むつもりだったけど予想外にボケたからボーダー上げて仕入れせずに終わらそう」とか、「予想外にボケたからボーダー下げて早く終わらそう」とかいう知恵が活用できそうなことが予想される。人間は賢い。
さて、このような場合の最適な売り方を求めたいときにはどうするべきだろうか。
詳細はめんどくさいので省略するが、平均売却時間の最小化という観点で見れば、おそらくこれはDPで解けると思われる。というわけで求めてみたいが、やっぱりめんどくさいのと、そもそも求められたとして実際のRTAプレイ中に残りの必要金額と前掛け数に応じてボーダーを変えられそうかというと疑問な点ではある。人間は賢いのか賢くないのかよくわからない。
ということで、モチベーションがあったらやってみるかも。