Генератор случайной последовательности чисел от X до Y

Сообщения
500
Реакции
275
Помог
6 раз(а)
Нужен натив/сток, который может сгенерировать случайную последовательность чисел, имея нижний и верхний пороги.

Задача: Выдача флагов определённому числу случайных игроков по их поинтерам.
 
Сообщения
500
Реакции
275
Помог
6 раз(а)
fantom, random_num не подойдёт, т. к. повторений быть не должно. Если при этом имеется в виду проверка наличия флага у сгенерированного поинтера, то я как раз и засомневался в этом способе. Т. к. при таком подходе нестабильное число итераций у цикла получается. Или это всё-таки лучший вариант реализации моей задачи?
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
CHEL74, чистого рандома и без повторений не существует. Есть псевдорандом. Плюс если нужна полная уникалбность и количество элементов ниже диапазона, то есть несколько подходов избежать повторений.
 
Сообщения
212
Реакции
334
Помог
3 раз(а)
Генерируешь последовательность из чисел от [1, 2, 3... N] (арифметическая прогрессия с разностью 1) в виде массива, потом просто его перемешиваешь (shuffle). Можно реализовать в виде Array и перемешать через ArraySort, используя компаратор, который возвращает random_num(-1, 1). Можно и через обычные массивы, но там придется писать свою функцию перемешивания.
 
Сообщения
594
Реакции
350
Предупреждения
1
Помог
9 раз(а)
Xelson, Не нужно.
https://dev-cs.ru/amxx/sorting/SortIntegers/view
1 Авг 2020
CHEL74,
Код:
new arr[150];
for(new i = 0, l = sizeof(arr); i < l; i++) arr[i] = i;
SortIntegers(arr, sizeof(arr), Sort_Random);
Код:
static players[MAX_PLAYERS], num;
get_players(players, num, "ch");
SortIntegers(players, num, Sort_Random);
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу