おそらく、ほとんどの人にとっては知ってもどうしようもならないと思いますが・・・。
pso2をプレイしていて、レアが出やすい時期があったり、レアがまったく出ない時期があると思います。また、星11以上の武器を多数所持している強運の持ち主もいます。これは、おそらく確率テーブルで擬似乱数を使用しているために起こることなのですが、今回はこの擬似乱数について少し考察してみようと思います。
擬似乱数という言葉自体は聞いたことあるという方もいるかもしれませんが、その内容について知らない方のほうが多いと思いますので、簡単に説明したいと思います。まず擬似乱数と乱数それぞれによる抽選の違いについて説明します。乱数についてですが、
「抽選をする前では結果は分からない」
ものです。この方式はパチンコの大当たりする抽選であったり、スロットマシンの抽選などで使われています。実際は、高速回転しているルーレットに矢を当てることで抽選を行うような仕組みになっています。このような仕組みでは、抽選前に結果を知ることは出来ませんし、ほぼ完全にランダムな抽選を行うことが出来ます。次に擬似乱数ですが、
「抽選をする前から結果が分かっている」
ものです。これは計算によって算出できるものになります。コンピュータ内では、上記のような乱数を取ることが出来ないので、擬似乱数に頼らざるを得ません。この擬似乱数の生成方法ですが、プログラム内のrand()関数を用いたり、適当な擬似乱数生成アルゴリズムを作ることで生成することが出来ます。ここでは簡単な例として円周率を求めるような擬似乱数生成アルゴリズムを考えましょう。円周率は、
3.1415926535…
となり、この円周率は小数点以下に無限に数字が並んでいてその数字の出現率はほぼ乱数ということがわかっています。そのため円周率の数字列は0~9の乱数として考えることが出来ます。
この擬似乱数の数字列テーブルをどのように扱うことで、確率として用いることが出来るかということですが、仮に能力追加成功率が40%の合成を行ったとします。その場合、円周率の数字列のテーブルから適当に2回値をとってきてその値が00~39であれば成功ということにすれば正しいように見えます。実際にプログラムでは、ある小数点以下の桁から順番に数字を取っていくような方法を行っています。この桁数のことをSEEDと呼びます。具体的にSEEDを5とすると、円周率のテーブルでは、9から始まって26535…と続くことになります。このSEEDを時間やID等で取得すれば複雑なSEEDを得ることが出来ます。また、ゲームによってSEEDの取得タイミングは異なるのが普通です。
①個人によってレアドロップする確率が違う気がする
これはIDをSEED取得の際に用いているのではないでしょうか?星11を複数ドロップしている方はSEEDが新たに取得された時に前回取得したSEEDの値から近い値を再度取得しているからではないでしょうか?
②レアが出やすい時期があったり出にくい時期がある
これは、SEEDがID+αによって再度取得された後に、①のようにまた同じ値を取っていることが原因になっているのではないでしょうか?
③新クエスト追加後すぐはレアドロップしやすい?
これは、おそらくレアドロップする割合を増やしているのが原因だと思われますが、アップデート後にSEEDが再取得されているのであれば、アップデートした直後はレアドロップしやすいIDの人もいるのかもしれません。
最後にこのような妄想に至った理由ですが、先日素材作りに励んでいたところ成功率からは考えられないほど連続成功が起こり、つい数ヶ月前にも同じようなことが起こったことからSEEDがID+αで再取得されているのではないかと思ったからです。なぜならSEEDがID+αで再取得されない限り連続成功という事象は起きづらいからです。基本的に擬似乱数が周期性を持つことは考えられず、SEEDがIDから取得されることにより周期性が現れると考えた方が整合性もとれます。ただSEEDを再取得する時間がいつなのかを知るのは難しいですが・・・
終わり
0 件のコメント:
コメントを投稿