使用PHP从数组中偏向随机值

有时,您可能希望以偏向随机的方式从数组中获取随机值,也就是说,您希望某些值比其他值返回更多。这是一个将从数组生成单个键的函数,其中较大的更改将检索到较高的值。

function biasedRandom($numbers){

 $total = 0;

 foreach($numbers as $number=>$weight){

  $total += $weight;

  $distribution[$number] = $total;

 };

 $rand = mt_rand(0,$total-1);

 foreach($distribution as $number=>$weights){

  if($rand<$weights){

   return $number;

  };

 };

}

此功能以下列方式使用。

//设置数组

$array = array('one'=>100,

 'two'=>100,

 'three'=>100,

 'four'=>500);

 

// 得到有偏的随机数

echo biasedRandom($array);

该函数生成的键最多为四个,因为它的值比其余键高,因此将“重”得多。

以上是 使用PHP从数组中偏向随机值 的全部内容, 来源链接: utcz.com/z/317517.html

回到顶部