Просмотр поста #106508: Случайные числа с заданной вероятностью

.
Blade
The Frontend-Warrior

я думаю, мат методы тут использовать будет лишним

по сабжу, набросал такой скрипт, но используется не выроятность выпадания числа, а количество таких чисел в множестве

function createSet( $probabilities ){
  $set = array();
  foreach( $probabilities as $number=>$qty ){
      $gen_sub_set = array_fill( count($set), $qty, $number);
      $set = array_merge($set, $gen_sub_set);
  }
   return $set;
}

function getRandomNumberFromSet( $probabilities ){
  $set = createSet( $probabilities );
  var_dump($set);
  return $set[ array_rand( $set ) ];
}

$array = array(
    1 => 10, // 10 = 25% от 40, к примеру
    2 => 20,
    3 => 4,
    4 => 6
 );

//var_dump( getRandomNumberFromSet( $array ) );
echo getRandomNumberFromSet( $array );