У меня есть эта строка кода для вычисления случайного числа:
myRand = arc4random()%24; //0:23
Каков наиболее эффективный способ добавить к этому, чтобы это не генерировало то же число, которое было создано ранее.
Я не пытаюсь перетасовать все 24, так как мне нужны повторы, просто желательно не 2 одинаковых числа сразу друг за другом...
Я думал сохранить предыдущее число отдельно, затем сравнить его и, если оно совпало, просто сделать это снова, но я не мог понять, если, например, одно и то же число выпало 3 раза подряд... Вряд ли я знаю, но это возможно.
Спасибо.
arc4random()%24;
используйтеarc4random_uniform(24);
, это устранит любую погрешность в операции остатка. - person zaph   schedule 01.12.2015arc24random
будет в порядке... Ничего не происходит, как я уже говорил, я не хочу, чтобы предыдущее число снова появлялось, и единственный способ, которым я мог придумать сравнение, - это сохранить его. и сравните два ... но, очевидно, скажите, что одно и то же число было сгенерировано 5 раз подряд, мой метод не сможет сравнить их все ... Следовательно, спрашивая, как все это можно было бы решить до того, как число получит шанс появляются более одного раза. - person Reanimation   schedule 01.12.2015