加權隨機數

2021-08-06 05:37:41 字數 1062 閱讀 8272

寫乙個函式,可以根據各個元素的權重返回隨機數 (加權隨機數)

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 函...