寫乙個函式,可以根據各個元素的權重返回隨機數 (加權隨機數)function(array_a,n)
array_a:是乙個陣列,表示各個元素出現的概率,
n:為需要返回的元素個數
如果n=1,則返回乙個元素(array_a中的key) , n=2則返回兩個元素(array_a中的key)
示例:function(,1): 返回長度為1的陣列,其中返回值為的概率為20/(20+50+30),返回值為的概率為50/(20+50+30),返回值為的概率為30/(20+50+30)
*function(,2): 返回長度為2的陣列,其中返回值中包含的概率為20/(20+50+30),返回值中包含的概率為50/(20+50+30),返回值中包含的概率為30/(20+50+30)
思考如何驗證上面的隨機數權重是有效的。
functionmyrand(
array$arr
, $number
)$return
= ;# 迴圈指定次數
while(
$number
-- )}}
return$return;}
#關於隨機權重的準確性可以多生成幾組隨機數、計算下出現的概率
echo'';
$new
= myrand( [
20 ,
50 ,
30] ,
100000
);//print_r( $new );
$test_result
= array_count_values
( $new
);print_r
( $test_result
);exit;
加權隨機數
寫乙個函式,可以根據各個元素的權重返回隨機數 加權隨機數 function array a,n array a 是乙個陣列,表示各個元素出現的概率,n 為需要返回的元素個數 如果n 1,則返回乙個元素 array a中的key n 2則返回兩個元素 array a中的key 示例 function ...
隨機數 偽隨機數
隨機數 偽隨機數 rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand unsigned seed 通過引數seed改變系統提供的種子值,從而可以使得每次呼...
隨機數生成 偽隨機數和真隨機數
c語言隨機數的生成,很隨機,又不隨機,比如像下面的程式 c語言生成隨機數的函式在stdlib.h庫中 include includeint main return 0 上面的 經過執行生成了 41 18467 6334 26500但是無論執行多好遍結果都是一樣的,隨機數並不隨機。這是因為rand 函...