Озон/Ozone , 2021-08-09, Рандомный массив

Для заданного целого числа, сгенерировать массив из целых, уникальных, случайных чисел, указанного размера.

(звезда) Есть решения покороче и покрасивее, с применением лямбда-выражений (вопрос) это решение “в лоб“

Запускаем/проверяем тут: https://3v4l.org/oIDW0#v8.0.9

<?php

define('MAX_INT', 100);

// fill array by unique values
// @param int $n array size
// @return array with randow unique values
function uniqRand($n)
{
    $ret = [];

    for($i = 0; $i < $n; $i++) {
        $unq = false;
        while($unq != true) {
            $v = rand(0, MAX_INT);
            if(!count($ret) || !in_array($v, $ret)) {
                $ret[$i] = $v;
                $unq = true;
            }
        }
    }    

    return $ret;     
}

// uniqRand(n int) int[]
// uniqRand(5) -> [1,5,100,2,4]
$ret = uniqRand(5);
var_dump($ret);
Tags

Нет комментариев

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.