Search Header Logo
Random

Random

Assessment

Presentation

Computers

KG

Practice Problem

Easy

Created by

Иван Клопов

Used 3+ times

FREE Resource

11 Slides • 13 Questions

1

media

2

Случайные числа

Случайные числа – последовательность чисел, в которой невозможно предсказать следующее число, зная все предыдущие.

Случайные числа широко используются в различных задачах программирования:

  • в играх (имитация подбрасывания игрального кубика и другие подобные ситуации);

  • в программах имитационного моделирования;

  • в статистических программах, случайным образом отбирающих данные для анализа;

  • в компьютерной безопасности для шифрования уязвимых данных.

Для создания истинно случайных чисел можно бросать монету, игральные кости, или измерять какой-нибудь шумовой сигнал.

3

Псевдослучайные числа

​Ставить сложные электронные приборы на каждый компьютер для генерации истинно случайных чисел дорого, поэтому математики и программисты создали алгоритмы получения псевдослучайных чисел, работающий по принципу вихря Мерсенна

4

​Псевдослучайные числа

Вихрь Мерсенна (англ. Mersenne twister, MT) — генератор псевдослучайных чисел, разработанный в 1997 году японскими учёными Макото Мацумото и Такудзи Нисимура.

Принцип работы: алгоритм использует большое число (обычно 32-битное или 64-битное) в качестве состояния генератора, который затем преобразуется с помощью сложных операций, чтобы получить следующее псевдослучайное число. 

Основные характеристики Вихря Мерсенна:

  • Длинный период. Алгоритм может генерировать огромное количество уникальных псевдослучайных чисел перед тем, как начнёт повторяться последовательность. 

  • Хорошее качество случайности. Сгенерированные числа должны соответствовать статистическим свойствам случайных чисел. 

  • Производительность. Вихрь Мерсенна имеет хорошую производительность, что делает его привлекательным выбором для многих задач. 

Однако этот генератор не является криптостойким, что ограничивает его использование в криптографии. 

5

​Модуль random

​Модуль random предоставляет функции для генерации псевдослучайных чисел, букв и случайного выбора элементов последовательности (списка, строки и т.д.). Для использования этих функций в начале программы необходимо подключить модуль, что делается командой import: import random После подключения модуля мы можем использовать его функции.

6

​Основные функции:

  • ​Функция randint()

  • Функция randrange()

  • Функция random()

  • Функция uniform()

  • Функция seed()

7

​​Функция randint()


Функция randint(min, max) возвращает случайное целое число в промежутке между двумя значениями min и max.


import random

 

number = random.randint(20, 35)  # значение от 20 до 35

print(number)

8

Функция randrange()


Функция randrange() возвращает случайное целое число из определенного набора чисел. Она имеет три формы:

  • randrange(stop): в качестве набора чисел, из которых происходит извлечение случайного значения, будет использоваться диапазон от 0 до числа stop

  • randrange(start, stop): набор чисел представляет диапазон от числа start до числа stop

  • randrange(start, stop, step): набор чисел представляет диапазон от числа start до числа stop, при этом каждое число в диапазоне отличается от предыдущего на шаг step

import random

 

number = random.randrange(10)  # значение от 0 до 10 не включая

print(number)

number = random.randrange(2, 10)  # значение в диапазоне 2, 3, 4, 5, 6, 7, 8, 9

print(number)

number = random.randrange(2, 10, 2)  # значение в диапазоне 2, 4, 6, 8

print(number)

9

Функция random()

Функция random() возвращает случайное число с плавающей точкой в промежутке от 0.0 до 1.0. Если же нам необходимо число из большего диапазона, скажем от 0 до 100, то мы можем соответственно умножить результат функции random на 100.

import random

 

number = random.random()  # значение от 0.0 до 1.0

print(number)

number = random.random() * 100  # значение от 0.0 до 100.0

print(number)

10

Функция uniform()

uniform() . Эта функция является частью модуля random в Python и возвращает случайное число с плавающей точкой в указанном диапазоне. В этом коде random. uniform(0, 1) генерирует случайное число с плавающей точкой в диапазоне от 0 до 1.

11

Функция seed()

Функция seed() в Python устанавливает целое начальное значение, используемое при генерации случайных чисел. Вызвать эту функцию нужно перед вызовом любой другой случайной функции модуля. Синтаксис: seed(x). Параметр x — это начальное число для следующего случайного числа. По умолчанию берется системное время.

12

Multiple Choice

Как называется алгоритм, лежащий в основе генерации псевдослучайных чисел в модуле random?

1

алгоритм Зиккурат

2

вихрь Мерсенна

3

конгруэнтный алгоритм

4

алгоритм Вичманна-Хилла

13

Multiple Choice

Какая функция возвращает случайное целое число внутри заданного диапазона значений?

1

randint()

2

random_integer()

3

uniform()

4

random()

14

Multiple Select

Какое число может быть в переменной num после выполнения следующего кода:

import random

num = random.randint(1, 118)

1

50

2

-1

3

1

4

119

15

Multiple Choice

акая функция возвращает случайное число с плавающей точкой в диапазоне [0.0;1.0)?

1

random()

2

randrange()

3

randint()

4

uniform()

5

random_integer()

16

Multiple Choice

Какая функция возвращает случайное число с плавающей точкой внутри заданного диапазона значений?

1

random()

2

uniform()

3

randrange()

4

random_integer()

17

Multiple Select

Какое число может быть в переменной num после выполнения следующего кода:

import random

num = random.randrange(115)

1

114

2

1

3

0

4

115

5

1120

18

Multiple Select

Какое число может быть в переменной num после выполнения следующего кода:

import random

num = random.randrange(9, 81)

1

52

2

9

3

1

4

81

5

0

19

Multiple Select

Какое число может быть в переменной num после выполнения следующего кода:

import random

num = random.randrange(15, 50, 5)

1

30

2

45

3

15

4

50

5

5

20

Multiple Choice

Функция seed() используется для инициализации начального значения генератора псевдослучайных чисел в модуле random. Верно ли, что по умолчанию, начальным значением генератора является системное время (текущая дата и время)?

1

да

2

нет

21

Open Ended

Напишите программу, которая с помощью модуля random моделирует броски монеты. Программа принимает на вход количество попыток и выводит результаты бросков: Орел или Решка (каждое на отдельной строке).

22

Open Ended

Напишите программу, которая с помощью модуля random моделирует броски игрального кубика c 6 гранями. Программа принимает на вход количество попыток и выводит результаты бросков — выпавшее число, которое написано на грани кубика (каждое на отдельной строке).

23

Open Ended

Лотерейный билет содержит 77 чисел из диапазона от 11 до 4949 (включительно).

Напишите программу, которая с помощью модуля random генерирует 77 различных случайных чисел для лотерейного билета. Программа должна вывести числа в порядке возрастания на одной строке через один символ пробела.

24

Open Ended

Мапксим загадал число от 1 до n (включительно), а Руслан собирается его отгадать. Каждый раз Руслан называет число Тимуру, а Тимур отвечает ему одним из способов: "больше", "меньше", "ты отгадал!". За какое наименьшее количество попыток Руслан может гарантированно угадать число Тимура? (напишите программу,)

media

Show answer

Auto Play

Slide 1 / 24

SLIDE