Как вы код arc4random(), который не повторяет число дважды?Использовать один раз на arc4random() number
Например. Я использую переключатель и кнопку. Я не хочу повторять повторное использование того же самого числа arc4random. Если у меня есть arc4random, то числа поколений 2,4,42,32,42 ... Я не хочу, чтобы 42 появлялся снова.
Как этого избежать?
switch (arc4random() % 50)
{
case 1:
text.text = @"You are silly boy";
break;
case 2:
text.text = @"Well, you very very silly"];
break;
case 3:
text.text = @"stop being silly"];
break;
case 4:
[text.text = @"silly... silly"];
break;
case 5:
text.text = @"what you silly boy"];
break;
...
case 0:
text.text = @"you silly"];
break;
}
Как часто они не могут повториться? –
Fisher-Yates: см. Здесь: http://stackoverflow.com/questions/1858610/different-numbers-from-1-to-10/1858800#1858800 – paxdiablo
Результат от arc4random, вероятно, не повторяется примерно для 2 миллиардов номеров , Но, поскольку числа являются (псевдо) случайными, когда вы используете% 50, вы можете получить два одинаковых числа подряд. Вы должны использовать другую стратегию, чтобы обеспечить уникальность. –