0
- ユーザーは最初に、名前、電子メール、電話などのテキストフィールドを入力します。
- それから彼は15の項目(1,2,3、... 15)が表示されます。
- 数字の1を常に先頭にしたくないため、表示順序にある程度の差異を追加します。
- このユーザー(またはこのセッション)の表示順序は、後で再利用されます。そのため4の
- )、我々は
a)は、それをキャッシュし、一度の順序をランダム化、または
b)は、このユーザーのいくつかの情報(またはこのセッション)から順に計算することができるのいずれか。 - b)の場合、テキストフィールドの入力からハッシュを生成することを考えています。
ハッシュを表示順に変換します。 - 変換は均等に分配する必要はありません。すなわち、
それぞれの15の発生確率! (= 1.3e + 12)の順列は等しくなる必要はない。
M =アイテムの数
P(1)= {1,2,3、...、M}
P(2)= {2,1,3、... 、M}
P(m)は、いくつかの順列ハッシュから順列へH =ハッシュ(名前、電子メール、電話)、またはハッシュ(セッションID)=、いくつかのテキストからわずかハッシュ
N(H)は整数を=範囲[1、M]次に、私たちが望む次数= P(N(h))
質問:この変換にはどのような方法が良いですか?
なぜ入力を使って擬似乱数ジェネレータをシードし、ランダムコールからの出力を使って順列を生成しますか? – TheGreatContini
N番目の置換を計算することは、例えば、https://stackoverflow.com/q/7918806/555045 – harold