PHP: Генерация случайных чисел — PHP шаг за шагом

coding-4781976Периодически возникает необходимость генерации случайных чисел у любого разработчика. Нет ничего проще встроенной функции 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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

/*

Генерируем случайные числа от 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++;

}

файл: i:openserver525domains2017.scripts35weekrundom_numbert02.php