e n j o y ! p s o 2 |    pso2のことや常日頃思ったことを適当に書いていきます

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Posted by カミュー on  | 

能力追加の確率に関する統計データ1

前回の記事の内容pso2内の確率テーブルの擬似乱数についてを踏まえて能力追加の確率に関して考察してみることにしました。

 まず複数スロの場合に擬似乱数テーブルをどのように扱っているのか考察することにします。1スロ目70%2スロ目70%3スロ目70%の3スロ武器・ユニットを例に考えていきます。この時起こる事象の場合の数は○を成功、×を失敗として、

1 2 3
×××
○××
×○×
××○
○○×
○×○
×○○
○○○

の8通りになります。この8通りの確率を求めて0~99の値に割り振るといったことも出来ないことはないのですが、この方法だと4スロ5スロなどの複数スロそれぞれの計算式をプログラムに書く必要性があり、また多スロになるほどプログラム内で複雑な場合分けが必要になるため、成功失敗の処理が重くなる可能性があります。また、確率を整数にするために四捨五入すると0~99で割り当てることが出来なくなることもあります。そのため、おそらく運営は2文字の擬似乱数3セットを用いることで簡単にそれぞれの成功失敗判定を行っていると考えられます。この方法であれば、4スロ5スロであっても簡単に確率処理を行うことが出来ます。

| :能力追加試行前の乱数テーブルの位置 赤:一スロ目の判定 緑:2スロ目の判定 青:3スロ目の判定
 
1856205759|{64}{75}{83}957369385937395


 さて、今回私は素材作りを行う際に成功失敗のデータを収集してきまして、このデータを元に能力追加の確率に関して考察してみることにします。
 能力追加に使う素材についてですが、1スロのステ1×2と1スロのゴミ(成功率100%)を用いまして、ⅡスロのステⅡゴミを目指しました。成功確率はステⅡが45%、ゴミが75%になります。

 以下、ステⅡ成功ゴミ成功を◎、ステⅡ成功ゴミ失敗を○、ステⅡ失敗ゴミ成功を△、ステⅡ失敗ゴミ失敗を×として結果を書いていきたいと思います。ちなみに◎○△×の確率はそれぞれ33.75%、11.25%、41.25%、13.75%です。

ドゥドゥと能力追加
△△◎◎◎△◎△○△◎◎◎△△◎◎△◎◎△△△×△△△◎△△△◎
△◎◎◎△◎△△○◎◎◎◎○◎△△◎◎◎△○△◎△○◎△◎×△△◎
◎△◎△◎△×△◎◎×△◎△◎△×△◎△◎×◎◎◎◎△○○△△△×
△◎◎◎◎△△△◎△○
  
総回数109回、◎47回 43.1%、○8回 7.3%、△47回 43.1%、×7回 6.4%


モニカと能力追加
△◎△◎○△△×◎△△△◎△△◎△△◎◎◎◎◎◎○×△×◎◎×○△△×
◎○×△◎◎◎×△△○◎◎△○△△△△△×△○◎△×◎○○◎△◎△◎◎◎
◎△△○◎◎◎△△△△△○×△◎×◎△◎◎◎△△△△◎△◎◎◎○◎◎
×△◎◎△◎◎△◎△△△△△◎×◎◎◎◎◎△△○△◎×◎△△×◎△△
△◎◎△◎◎△◎◎△△△△△

総回数150回、◎60回 40%、○12回 8%、△63回 42%、×15回 10%

このデータを見ますと、かなりの回数をこなしているはずなのに、確率が収束しておらず全体的に運が良い傾向に見えます。また、ドゥドゥとモニカの確率を見るとドゥドゥの方が成功しやすいように見えますが、ドゥドゥの方は総試行回数が少なく信頼性が低いため、確かなことは言えません。さらにモニカのデータを見ると、6回連続や5回連続成功していることがあり、ものすごく低確率で起こると予想される現象が発生していることが分かります。この現象についてpso2自身の擬似乱数テーブルに問題があるかどうか以下詳しく考察していきたいと思います。






話がややこしくなるので注意⬇️



 ゲームに使用されるべき擬似乱数というものは等出現性無規則性(独立性)を持つものです。等出現性とは0~9の値が出る乱数を例にすると、0~9のそれぞれの値が出る確率が等しいということです。つまり乱数を無限回数並べると0~9それぞれの出現回数は等しくなります。また無規則性(独立性)とは、乱数の隣り合う並びに規則性が全くないということです。つまりある場所の乱数の値が分かっても隣り合う乱数の値を予測することは出来ません。このような擬似乱数をテーブルとして用いれば、周期性などは全く出ることはありません。この二つの性質をpso2内の擬似乱数が備えてるかどうか調べることにします。

 まず成功失敗のデータを数値化することにします。今回の能力追加合成では、1スロ目にステⅡの45%、2スロ目にゴミの75%で合成させています。つまり、1スロ目で成功だと0~44、平均22の値をとり、失敗だと45~99、平均72の値をとると考えれます。同様に2スロ目だと成功で平均37、失敗で平均87の値をとると考えられます。よって◎だと2237、○は2287、△は7237、×は7287の乱数の並びであると仮定できます。

 この仮定により、成功失敗のデータを数列データに変えることが出来、統計的性質を調べることが出来ます。2桁数字の平均はもし正しい擬似乱数だと0~99の値を等出現性でとるので49.5になります。以下、結果です。

      ドゥドゥの場合:45.32       モニカの場合: 47.17 

 試行回数が多いモニカの場合でも平均が2程度違っています。この平均2の差は大きいのかどうか調べるために実際に優れた擬似乱数であるメルセンヌ・ツイスタを用いてすることにします。まず試行回数による平均値の変化です。

プログラムファイル➡メルセンヌ・ツイスタによるシミュレーション メルセンヌ・ツイスタのヘッダファイル

             試行回数150: 平均48.8333 試行回数500: 平均49.55
 
 この結果から理想的な擬似乱数であれば、500回試行すると、ほぼ平均値に落ち着くことが分かります。また、擬似乱数のSEED(スタート位置)を変えることでこの平均値は変わります。次にpso2の擬似乱数が理想的な擬似乱数の場合である時、試行回数150回の平均値47.17がどのくらいの確率で出現するか調べることにします。 

プログラムファイル➡標本平均を出すシミュレーション

上記のプログラムでは、150回試行平均を10000回試行しており、そのデータから平均値の分布グラフを取ることが出来ます。この分布は理想的な擬似乱数であれば正規分布と呼ばれる分布をしているため、その正規分布の性質から平均値47.17が出る確率が分かります。

結果として平均値47.17が出る確率は4.8%あり、pso2内の擬似乱数テーブルが理想的な擬似乱数であっても運が良ければ出る平均値だということが分かりました。




 上記のシミュレーションから<等出現性>の観点でpso2内の擬似乱数が理想的な擬似乱数である可能性は捨てきれないことが分かりました。しかしまだ<無規則性>の観点での考察が出来ていないので、無規則性に関する考察も行いたいと思います。規則性があるかどうかを調べるためには隣り合う乱数が相関しているかどうかを確かめることが必要となります。(相関というのは似通っているかどうかです。値同士が独立していれば相関はありません。)そこで使えるツールとして自己相関と呼ばれるものがあります。この自己相関を用いることで、相関があれば1の値を、相関がなければ0の値をとるようなグラフで表現することが可能です。以下結果です。


        pso2内の擬似乱数の相関

        理想的な擬似乱数の相関

 
 距離というのは、ある擬似乱数と擬似乱数の距離です。つまり、距離5の相関というのは下の例をとると、

距離が5離れている赤と青の数字は相関があるか(似通ってるか)どうか

7543089682624643477375296


であり、距離0は自己の相関であるため、1となります。上のグラフを比べると共に距離1になった瞬間0に近づいており、差は無いように見えます。ただ、これは試行回数150回の相関であるため、大きな周期性(例えば10000回の周期で成功しやすくなったり失敗しやすくなる)を確認することは出来ません。しかし、大きな周期性の有無を除けばpso2の擬似乱数は<無規則性>であると言えます。

 
 最後に理想的な擬似乱数であるメルセンヌ・ツイスタを用いて能力追加の成功失敗に関するシミュレーションをしたいと思います。

プログラムファイル➡メルセンヌ・ツイスタによる能力追加

それでは、シミュレーションの結果です。
◎×△△×△△△◎×◎△○◎△△△◎◎△△◎◎○×△△○△×◎
△△◎△×△×◎△×◎◎△◎◎×○×◎△△△×◎○◎◎◎×△◎
△△△◎◎◎×△△◎◎◎◎◎◎◎◎◎◎△◎◎◎○○△○◎△×◎
△○△○△◎△◎○△×◎△◎△△○◎◎△◎○△×△◎△△△○○◎
◎◎◎○×△△△△×△××◎◎△△◎×◎△◎×◎△

総試行回数150、◎57回38%、○16回10.7%、△55回36.7%、×22回14.7%


 シミュレーションから総試行回数150回程度だとある程度確率がぶれることが分かります。また、◎が10回続いていることから、運が良ければ6回程度なら簡単に起こりうることが分かります。

 
 
 今回、pso2の能力追加に関する統計データをとるまで能力追加が10回連続成功するのは普通の乱数だとありえないのではないかと思ってましたが、統計データを取ることでその疑問を払拭することが出来ました。しかし、今回用いた成功失敗のデータだけでは、大きな周期性が存在する可能性を否定することは出来ませんでしたので、今後その疑問に関して明らかにしていきたいと思います。


 
11/26 ミス修正


参考になりましたら拍手お願いします。

スポンサーサイト
Posted by カミュー on  | 0 comments  0 trackback

pso2内の確率テーブルの擬似乱数について

カミューです。今回ちょっとした与太話をしたいと思います。2chなどでは既に議論されている内容です。
おそらく、ほとんどの人にとっては知ってもどうしようもならないと思いますが・・・。



 pso2をプレイしていて、レアが出やすい時期があったり、レアがまったく出ない時期があると思います。また、星11以上の武器を多数所持している強運の持ち主もいます。これは、おそらく確率テーブルで擬似乱数を使用しているために起こることなのですが、今回はこの擬似乱数について少し考察してみようと思います。
 
 擬似乱数という言葉自体は聞いたことあるという方もいるかもしれませんが、その内容について知らない方のほうが多いと思いますので、簡単に説明したいと思います。まず擬似乱数と乱数それぞれによる抽選の違いについて説明します。乱数についてですが、

               「抽選をする前では結果は分からない」

ものです。この方式はパチンコの大当たりする抽選であったり、スロットマシンの抽選などで使われています。実際は、高速回転しているルーレットに矢を当てることで抽選を行うような仕組みになっています。このような仕組みでは、抽選前に結果を知ることは出来ませんし、ほぼ完全にランダムな抽選を行うことが出来ます。次に擬似乱数ですが、

               「抽選をする前から結果が分かっている」

ものです。これは計算によって算出できるものになります。コンピュータ内では、上記のような乱数を取ることが出来ないので、擬似乱数に頼らざるを得ません。この擬似乱数の生成方法ですが、プログラム内のrand()関数を用いたり、適当な擬似乱数生成アルゴリズムを作ることで生成することが出来ます。ここでは簡単な例として円周率を求めるような擬似乱数生成アルゴリズムを考えましょう。円周率は、

3.1415926535…

となり、この円周率は小数点以下に無限に数字が並んでいてその数字の出現率はほぼ乱数ということがわかっています。そのため円周率の数字列は0~9の乱数として考えることが出来ます。

 
 この擬似乱数の数字列テーブルをどのように扱うことで、確率として用いることが出来るかということですが、仮に能力追加成功率が40%の合成を行ったとします。その場合、円周率の数字列のテーブルから適当に2回値をとってきてその値が00~39であれば成功ということにすれば正しいように見えます。実際にプログラムでは、ある小数点以下の桁から順番に数字を取っていくような方法を行っています。この桁数のことをSEEDと呼びます。具体的にSEEDを5とすると、円周率のテーブルでは、9から始まって26535…と続くことになります。このSEEDを時間やID等で取得すれば複雑なSEEDを得ることが出来ます。また、ゲームによってSEEDの取得タイミングは異なるのが普通です。






 一段落して、これから妄想の話をしていきたいと思います。pso2内では、一つの擬似乱数の数字列テーブルを皆がそれぞれ違うSEEDを取得して乱数を得ていると思われますが、以下の状況証拠(証拠ではない)から次のような妄想をすることが出来ます。





①個人によってレアドロップする確率が違う気がする

これはIDをSEED取得の際に用いているのではないでしょうか?星11を複数ドロップしている方はSEEDが新たに取得された時に前回取得したSEEDの値から近い値を再度取得しているからではないでしょうか?



②レアが出やすい時期があったり出にくい時期がある

これは、SEEDがID+αによって再度取得された後に、①のようにまた同じ値を取っていることが原因になっているのではないでしょうか?



③新クエスト追加後すぐはレアドロップしやすい?

これは、おそらくレアドロップする割合を増やしているのが原因だと思われますが、アップデート後にSEEDが再取得されているのであれば、アップデートした直後はレアドロップしやすいIDの人もいるのかもしれません。



 最後にこのような妄想に至った理由ですが、先日素材作りに励んでいたところ成功率からは考えられないほど連続成功が起こり、つい数ヶ月前にも同じようなことが起こったことからSEEDがID+αで再取得されているのではないかと思ったからです。なぜならSEEDがID+αで再取得されない限り連続成功という事象は起きづらいからです。基本的に擬似乱数が周期性を持つことは考えられず、SEEDがIDから取得されることにより周期性が現れると考えた方が整合性もとれます。ただSEEDを再取得する時間がいつなのかを知るのは難しいですが・・・

 今まで話してきた内容が役に立つとすれば、強化や能力追加のときの工夫だと思われます。強化や能力追加で失敗が続くようでしたら大人しく作業をやめて賭みたいなことをしないこと、そして強化や能力追加が成功し続けた時に賭けに出ることを心がけることで大分メセタの消費が変わってくるでしょう。おそらく・・・

終わり

 




  














Posted by カミュー on  | 0 comments  0 trackback
このカテゴリーに該当する記事はありません。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。