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