Вопрос C++ rand() % 50 + 1; что означает эта строка? желательно нужно почему там процентр

Регистрация
24 Дек 2013
Сообщения
75
Репутация
0
Спасибо
0
Монет
0
C++
rand() % 50 + 1; что означает эта строка? Желательно нужно почему там процентр
 
берем случайное число и считаем остаток от его деления на 50 - получаем число от 0 до 49. Добавляем 1 - получаем число от 1 до 50
 
функция rand() возвращает некоторое случайное число в диапазоне от 0 до 32767
Чтобы сузить этот диапазон применяется оператор вычисления остатка от целочисленного деления - % на некоторое заданное число.
таким образом вы получаете случайное число, в диапазоне от нуля до этого заданного числа (не включая его).

пример значение rand() -> rand()%100 чтобы получить случайное число от 0 до 99:
400 -> делим на 100 получаем 4 без остатка -> 0
333 -> делим на 100 получаем 3 и 33 в остатке -> 33
15 -> делим на 100 получаем 0 и 15 в остатке -> 15
99 -> делим на 100 получаем 0 и 99 в остатке -> 99

как видите результат никогда не превысит заданное после % число.
 
генерация случайного целого от 0 до 50
 
Это не процент, а арифметическая операция "остаток от деления".
Значением rand() % 50 является случайное целое число в диапазоне [0; 49]
Прибавляя 1, получаем случайное целое число в диапазоне [1; 50]
 
Назад
Сверху