什麼是創建一個PHP函數的最有效方法,它將選取一定數量的隨機數,但均勻間隔並且不包含重複項?PHP:選擇一個隨機數,均勻分佈
例如說你想0-6 3之間的隨機數的結果可能是[0,2,5]或[1,3,6]。
關於如何開始的任何想法?
什麼是創建一個PHP函數的最有效方法,它將選取一定數量的隨機數,但均勻間隔並且不包含重複項?PHP:選擇一個隨機數,均勻分佈
例如說你想0-6 3之間的隨機數的結果可能是[0,2,5]或[1,3,6]。
關於如何開始的任何想法?
注意,沒有代碼的下方會直接工作,作爲一個複製粘貼。
如果你想選擇一個隨機數,使用mt_rand(min, max)
。
如果要選擇可被N整除的隨機數,請使用mt_rand(min, max)*N
。
如果你想選擇M個隨機數裏面全是整除N,使用循環:
for($i = 0; $i <= M-1; $i++) {
$result[$i] = mt_rand(min, max)*N;
}
print_r($result);
這是我從你的問題理解。 「
如果你的意思是均勻分佈在「所有evens」那麼你可以檢查數字對模數2:if($ n%2 == 0){//用偶數來做事情......}
array_rand(array(1,2,3,4,5,6 ...),3);會給你一個數字池中的3個隨機數,但他們當然是隨機的......不是均勻間隔的......在一個組中,均勻間隔的數字很難根據定義是隨機的嗎?
我的意見是隨機挑選數組的索引,然後以某個時間間隔在該索引處添加元素,然後在需要的迭代次數上執行該操作。
$random_numbers = array(1,2,3,4,5,6,7,8,9);
$random_val = array_rand($random_numbers, 1);
$iterations = 3;
for ($i=0; $i<$iterations; $i++){
$random_val = $random_val+2;
print $random_val;
}
」3和6是如何均勻分佈的「?3和6之間的間隙比1和3之間的間隙大50%。爲什麼不是」1 3 5「? –
同樣適用於0,2,和5. –
如果你有一組關於可能性的規則,計算它們並從我選擇的一個隨機數中選擇一個隨機數 –