2009-11-01 2 views
0

Я новичок в программировании на iPhone. У меня 10 число, скажем (1,2,3,4,5,6,7,8,9,10). Я хочу выбрать случайное число из десяти чисел. Как выбрать случайное число из набора чисел?выберите случайное значение

ответ

2

Если вы хотите просто значение от 1 до 10, вы можете использовать стандартный метод C rand(). Это возвращает целое число от нуля до RAND_MAX.

Чтобы получить значение от 0 до 9, вы можете использовать оператор %. Таким образом, чтобы получить значение между 1 и 10 вы можете использовать:

rand()%10 + 1 

Если вы не хотите ту же серию псевдо случайных чисел каждый раз, вы должны будете использовать srand для инициализации генератора случайных чисел. Хорошим значением для его посева было бы текущее время.

Если вы спрашиваете о выборе номера из списка произвольных (и, возможно, не последовательных) номеров, вы можете использовать следующее.

int numbers[] = {2,3,5,7,11,13,17,19,23,29}; 
int randomChoice = numbers[rand()%10]; 
+0

Если вы хотите, чтобы число было выбрано одинаковым для каждого номера, не используйте '%'! – Joey

+0

Поскольку RAND_MAX обычно довольно большой, вероятность появления крошечных крошечных вариаций вероятна. –

+0

* «Покажите мне, как получить случайное число» * - «Здесь» - * «Ницца, спасибо, все, на что можно обратить внимание?» * «Да, распределение не является однородным, но это не имеет значения» - * «Это не имеет значения? Эй, я создаю миллиард миллиардов ценностей здесь, и вы говорите, что это не имеет значения?» * ... это не так уж сложно, и если вы этого не сделаете, Знайте много о требованиях OP не дать им более низкий ответ. – Joey

0

Чтобы создать случайное число, вы должны использовать функцию random(). Но если вы его дважды назовете, это даст вам два равных ответа. Перед вызовом random() вызовите srand (time()), чтобы получить новое новое случайное число. если вы хотите использовать для (int i = 0; ...) для создания чисел, используйте команду srand (time() + i).

+2

Функция seed для random() is srandom(). Поэтому либо используйте random() и srandom(), либо rand() и srand(), но не смешивайте их. Как правило, random() рекомендуется, потому что случайный алгоритм немного лучше. –

0

Что-то вроде этого:

- (IBAction)generate:(id)sender 
{ 
    // Generate a number between 1 and 10 inclusive 
    int generated; 
    generated = (random() % 10) + 1; 

} 
+0

хотите ли вы сказать, хочу ли я выбрать случайное число из 10 чисел, тогда используйте (random()% 10) +1. если да, то если есть только четыре числа, то я использую следующую формулу (random()% 4) +1. Пожалуйста, предложите – Rupesh

Смежные вопросы