アカウント名:
パスワード:
くじの出力がすべての値の組み合わせ (3^(14*5)通り?) を取るのであれば、偶然の一致は考えにくいが、仕様上出力される組み合わせがそれよりも少なく、なおかつくじとして成立するのに十分な数だというのはありうる。
例えば、乱数発生器から32bitの乱数を生成して、それをもとに適当な変換 (適当な乱数アルゴリズムのシードにするとか) をかけるなどだと、くじの取りうる組み合わせは約4億通りになる。
このくらいだったら、実際に販売された口数によっては偶然一致することもなくはないだろう。
3^14通りの全てが出ることが保証されておらず、システム的に絶対に出ない組み合わせがあったとすると、その組み合わせが当たりの時は当たりくじの入っていないくじ引きをやらされていることになるのだけれど、詐欺にはならないのかな
その通りですね。
1口で14次元の均一性が必要になりますね。一つの券で10口まで同時に扱うので最大140次元になる。これを標準機能の擬似乱数で均一性を担保するのは難しいでしょう。
メルセンヌツイスターのような擬似乱数ならばこれを満たせるでしょうが、券ごとに32bitのシードで初期化するような実装だと結局4億通りの範囲しかカバーできませんので実装次第で台無しになってしまいます。
また、このような厳密性を求められるくじに対して、予測可能な擬似乱数を使用して良いものかどうかも難しいところです。
不具合は別にしても素人考えで実装できるものではなさそうです。
全通り出すのが要件なのなら、ランダムでなくシャッフルしてやればいいのと違う?
まさにくじ引きと同じにするわけですね。全体として3^14分のエントロピーをひとつ用意できれば良い、と。もし3^14枚売れちゃったらそこで売り切れ、と。悪くないかも。(ネトゲ・ソシャゲだと実際そうなってたりするのかな?)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
組み合わせの数は? (スコア:0)
くじの出力がすべての値の組み合わせ (3^(14*5)通り?) を取るのであれば、偶然の一致は考えにくいが、
仕様上出力される組み合わせがそれよりも少なく、なおかつくじとして成立するのに十分な数だというのはありうる。
例えば、乱数発生器から32bitの乱数を生成して、
それをもとに適当な変換 (適当な乱数アルゴリズムのシードにするとか) をかけるなどだと、
くじの取りうる組み合わせは約4億通りになる。
このくらいだったら、実際に販売された口数によっては偶然一致することもなくはないだろう。
Re: (スコア:0)
3^14通りの全てが出ることが保証されておらず、システム的に絶対に出ない組み合わせがあったとすると、
その組み合わせが当たりの時は当たりくじの入っていないくじ引きをやらされていることになるのだけれど、
詐欺にはならないのかな
Re: (スコア:0)
その通りですね。
1口で14次元の均一性が必要になりますね。
一つの券で10口まで同時に扱うので最大140次元になる。
これを標準機能の擬似乱数で均一性を担保するのは難しいでしょう。
メルセンヌツイスターのような擬似乱数ならばこれを満たせるでしょうが、
券ごとに32bitのシードで初期化するような実装だと結局4億通りの範囲しかカバーできませんので
実装次第で台無しになってしまいます。
また、このような厳密性を求められるくじに対して、
予測可能な擬似乱数を使用して良いものかどうかも難しいところです。
不具合は別にしても素人考えで実装できるものではなさそうです。
Re: (スコア:0)
全通り出すのが要件なのなら、ランダムでなくシャッフルしてやればいいのと違う?
Re:組み合わせの数は? (スコア:1)
まさにくじ引きと同じにするわけですね。
全体として3^14分のエントロピーをひとつ用意できれば良い、と。
もし3^14枚売れちゃったらそこで売り切れ、と。
悪くないかも。(ネトゲ・ソシャゲだと実際そうなってたりするのかな?)