Рандомное число.

Статус
В этой теме нельзя размещать новые ответы.
Сообщения
893
Реакции
149
Помог
25 раз(а)
Здравствуйте, имееться у меня аррай, и у меня стоит задача.
Мне нужно получать случайное число из размера аррая, но при этом, это число не должно повторятся, то-есть, если выпало число 2, то оно больше выпасть не может.

C++:
// Получаю случайное число.
new Random = random(ArraySize(g_aBoxes) - 1);
Вопрос, каким методом лучше реализовать анти повторение чисел?
Логично их куда-то записывать, но, голова совсем не варит как это лучше сделать.
 

ssx

Сообщения
294
Реакции
86
Было бы хорошо запилить в AMXX третий параметр для random функций (там ещё дробные) чтоб было:
random_num(0,4,2) где 2 это значение история предыдущих рандомов этого рандома (или в конкретной функции плагина).


Код:
Глобальной переменную: new old_rndnm


В функции public test_random()

if (!old_rndnm)

{

     new rndnm = random_num(0,3)

     if (rndnm == old_rndnm)

     {

          test_random()

     }

     else

     {

          rndnm = old_rndnm

     }

}

что-то типа такого принципа ..
 
Сообщения
1,082
Реакции
58
Помог
11 раз(а)
ImmortalAmxx, записать в массив получившие значения и проверочку на повторение
21 Ноя 2023
ssx, а зачем так, ему надо что бы это число больше не выпадало
 
Сообщения
75
Реакции
82
Помог
6 раз(а)
ImmortalAmxx, Удаляй использованный item из этого Array и его результат больше не повторится

Код:
ArrayDeleteItem(g_aBoxes, Random);
 
Сообщения
893
Реакции
149
Помог
25 раз(а)
Code_0xABC, для моей задачи этот вариант тоже подходящий (лично для меня!), так что, можно закрывать тему.
 
Статус
В этой теме нельзя размещать новые ответы.

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

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