Similar presentations:
Генератор случайных чисел
1. Генератор случайных чисел
2. Генератор случайных чисел
• В языке С существует возможностьгенерировать ПСЕВДОслучайное число.
• Для этой операции используется функция
под названием rand().
3. Генератор случайных чисел
• На место вызова rand() в программе,подставится случайное число в диапазоне
от 0 до 32767.
4. Генератор случайных чисел
Подключите библиотеку:#include<stdlib.h>
int a;
a = rand();
cout << a << "\n";
a = rand();
cout<<a<<"\n";
5. Генератор случайных чисел
• Для того, чтобы rand() при разных вызовахпрограммы выдавал разные числа
необходимо изменить начальную точку
генерации.
6. Генератор случайных чисел
• Функция srand устанавливает начальнуюточку для генерации случайных чисел и
обладает следующим синтаксисом:
• void srand(unsigned int start);
7. Генератор случайных чисел
Пример:srand(5);
int a;
a=rand();
cout<<a<<"\n";
8. Функция time();
• Функция time(NULL) возвращает количество секунд прошедших с0 часов, 1 января 1970 года.
• Для использования функции time(NULL) необходимо подключить
библиотеку time.h или ctime
9. Генератор случайных чисел
srand(time(NULL));• Теперь, функция srand, используя функцию
time(NULL), устанавливает в качестве стартовой точки
число, представляющее собой количество, секунд
прошедших с 1 января 1970 года.
10. Задача
Сгенерировать случайное число вдиапазоне от 0 до 10 (включительно);
Подсказка: использовать целочисленное
деление (деление по модулю).
Ответ: rand() % 11
11. Задача
Сгенерировать случайное число вдиапазоне от 10 до 20 (включительно);
Подсказка: для сдвига чисел влево и
вправо, на числовой прямой, используйте
«+» и «-», соответственно.
Ответ: rand() % 11 + 10
12. Задача
Сгенерировать числа от -10 до 20(включительно);
Подсказка: для изменения диапазона –
делите по модулю на число определяющее
целевой диапазон чисел... Для сдвига
диапазона используйте «+» и «–»
Ответ: rand() % 31 - 10
13. Задача
Сгенерировать числа от -10 до 20, с двумязнаками после запятой (включительно);
Подсказка: необходимо делить на 100 и
использовать тип float;
Ответ: rand() % 3100/(float)100 - 10