PHP: Генерация случайных чисел.

Периодически возникает необходимость генерации случайных чисел у любого разработчика. Нет ничего проще встроенной функции rand(0,100), которая прекрасно работает. Однако если усложнить задачу…

Есть «коробка» с пронумерованными фишками, например от 0 до 100. И вы их извлекаете из нее, естественно их количество уменьшается. Требуется составить массив для заданного наперед количества фишек в коробке.

Алгоритм решения:

  • в цикле генерируем число и добавляем его в массив
  • удаляем дубли массива
  • проверяем число уникальных элементов массива, если их меньше заданного числа «фишек в коробке» повторяем генерацию
  • переписываем ключи от 0 до заданного числа

Генерация случайного числа на PHP:

/*
Генерируем случайные числа от 0 до указанного
$max и складываем в массив(индекс от 0 до $max-1)
*/
$max = 1200;
while (count($out) < $max) {
  for ($i=0; $i < ($max-1); $i++) {
    $list[] = rand( 0,($max-1));
  }
  // удаляем дубли
  $out = array_unique($list);
}
// переписываем ключи массива
$key = 0;
foreach ($out as $value) {
  $result[$key] = $value;
  $key++;
}

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...