Thon Условные



бет12/38
Дата23.02.2020
өлшемі2,05 Mb.
#58878
1   ...   8   9   10   11   12   13   14   15   ...   38
Байланысты:
8-3 python


x = n / d print( x ) print( y ) print( x - y )

Сделайте выводы.

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

В некоторых задачах, в том числе в компьютерных играх, необходимо моделировать случайные явления, например, ре-зультат бросания игрального кубика (на нём может выпасть число от 1 до 6). Как сделать это на компьютере, который «не-случаен», то есть строго выполняет заданную ему программу?



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

Чтобы получить истинно случайные числа, можно, напри-мер, бросать игральный кубик или измерять какой-то шумовой сигнал (например, шум радиоэфира или сигнал, принятый из космоса). Так раньше составлялись таблицы случайных чисел, которые публиковались в книгах.

Но вернёмся к компьютерам. Ставить сложные приборы на каждый компьютер очень дорого, и повторить эксперимент бу-дет невозможно завтра все значения будут уже другие. Суще-ствующие таблицы слишком малы, когда, скажем, нужно полу-чать 100 случайных чисел каждую секунду. Для хранения больших таблиц требуется много памяти.

Чтобы выйти из положения, математики придумали алго-ритмы получения псевдослучайных («как бы случайных») чисел. Для стороннего наблюдателя псевдослучайные числа практиче-ски неотличимы от случайных, но они вычисляются по некото-рой математической формуле: зная первое число («зерно»), можно по формуле вычислить второе, затем третье и т.п.

Функции для работы с псевдослучайными числами в языке

Python собраны в модуле random. В библиотеке Python исполь-

26 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

зуется один из наиболее совершенных алгоритмов для генера-ции псевдослучайных чисел «вихрь Мерсенна», разработан-ный в 1997 году.

Для получения псевдослучайных чисел в заданном диапа-

зоне мы будем использовать функции из модуля random:

randint(a,b) случайное целое число на отрезке [a; b];

uniform(a,b) случайное вещественное число на отрез-

ке [a; b].

Для того чтобы записать в переменную n случайное число на отрезке [1; 6] (результат бросания игрального кубика), можно использовать такие команды:

from random import randint n = randint( 1, 6 )

В первой строке из модуля random импортируется (загружается) функция randint, во второй она вызывается для получения случайного числа.

Вещественное случайное число на отрезке [5; 12] получается так:

from random import uniform x = uniform( 5, 12 )
Выводы:

Переменная это величина, которая имеет имя, тип и зна-чение. Значение переменной может изменяться во время вы-полнения программы.

Идентификатор это имя переменной.

Основные операции с переменными ввод, вывод, присваи-вание нового значения.

Если переменной присваивается новое значение, предыду-щее стирается.

Арифметические выражения обычно записываются в одну

строчку. Операция умножения обозначается знаком «*», а операция деления знаком «/».

27 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

Для целочисленного деления в языке Python используется

оператор //, для вычисления остатка от деления опера-тор %.

Арифметические операции выполняются в следующем по-рядке:

1) действия в скобках;

2) возведение в степень, справа налево;

3) умножение, деление и взятие остатка, слева направо;

4) сложение и вычитание, слева направо.

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

Интеллект-карта

целые вещественные строки


присваивание

ввод


присваивание

ввод

имя (идентификатор)

присваивание

ввод

присваивание

ввод







числа

скобки
присваивание

ввод



**
присваивание

ввод



*/ // % +-

Рис. 3.3.



Практическая работа №7. Линейные программы

Практическая работа №8. Операции с целыми числами

28 http://kpolyakov.spb.ru


переменные

тип

значение

вывод

арифметическое

выражение




05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

Практическая работа №9. Операции с вещественными числами

Практическая работа №10. Случайные числа

Вопросы и задания

1. Во многих языках программирования том числе в школь-ном алгоритмическом языке и в языке Паскаль) переменные нужно заранее объявлять. Обсудите в классе, какие достоин-ства и недостатки имеет такой подход.

2. Почему желательно выводить на экран подсказку перед вво-дом данных?

3. Чем отличаются два оператора вывода:



print( a ) и print( "a" )

Какой из них может привести к ошибке во время выполне-ния программы? В каком случае?



4. Когда можно вычислять результат прямо в операторе выво-да, а когда нужно сохранять его в отдельной переменной?

5. В каком порядке выполняются операции, если они имеют одинаковый приоритет?

6. Зачем используются скобки в арифметических выражениях?

7. Объясните, чем отличаются случайные числа от псевдослу-чайных. Почему в компьютерах используются именно псев-дослучайные числа?



Задачи

1. Что будет выведено при выполнении следующей команды при a = 5 и b = 3?

а) print( a, ">", b, "!" ) б) print( "a>", "b!" )

в) print( "(", a, ")<(", a+b, ")" )



2. Запишите команду для вывода значений целых переменных a = 5 и b = 3 в следующем формате:

а) 3+5=? б) (5)(3)

в) a=5; b=3;

29 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

г) Ответ: (5;3)



3. Вычислите значение вещественной переменной c при a = 2 и b = 3:

а) с = a + 1 / 3



б) с = a + 4 / 2 * 3 + 6 в) с = (a + 4) / 2 * 3

г) с = (a + 4) /(b + 3) * a



4. Вычислите значение целочисленной переменной c при a = 26 и b = 6:

а) c = a % b + b б) c = a // b + a в) b = a // b г) b = a // b + b

c = a // b c = a % b + a д) b = a % b + 4 е) b = a // b

c = a % b + 1 c = a % (b+1) ж) b = a % b

c = a // (b+1)

5. ыполните предыдущее задание при a = 22 и b = 4.



6. Напишите программу, которая находит сумму, произведение и среднее арифметическое трёх целых чисел, введённых с клавиатуры. Например, при вводе чисел 4, 5 и 7 мы должны получить ответ

4+5+7=16 4*5*7=140

(4+5+7)/3=5.333333

7. Напишите программу, которая получает с клавиатуры коли-чество секунд и выводит то же самое время в часах, минутах и секундах.

8. Занятия в школе начинаются в 8-30. Урок длится 45 минут, перерывы между уроками 10 минут. Напишите программу, которая получает с клавиатуры номер урока и выводит вре-мя его окончания.

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

30 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин



ство пирожков. Требуется вывести сумму, которую нужно за-платить (рубли и копейки).

10. В игре «Русское лото» из мешка случайным образом выби-раются бочонки, на каждом из которых написано число от 1 до 90. Напишите программу, которая выводит наугад пер-вые 5 выигрышных номеров.



11. *Доработайте программу «Русское лото» так, чтобы все 5 значений гарантированно были бы разными.

12. Игральный кубик бросается три раза (выпадает три слу-чайных значения). Из этих чисел составляется целое число, программа должна найти его квадрат.



13. Требовалось написать программу, которая меняет местами значения двух переменных в памяти. Программист торо-пился и написал программу так:

a = b

b = a

Что получится, если вначале значения переменных были равны a = 1, b = 2? Как исправить программу?


14. *Попробуйте поменять местами значения двух переменных, используя только операции сложения и вычитания и не ис-пользуя дополнительные переменные.

15. Напишите программу, которая возводит полученное число в степень 10, используя только четыре операции умножения.

16. Напишите программу, которая получает с клавиатуры трёх-значное число и разбивает его на цифры. Например, при вводе числа 123 программа должна вывести «1,2,3».

17. Напишите программу, которая получает с клавиатуры че-тырёхзначное натуральное число и переставляет его первую и последнюю цифры, например, из числа 1234 должно по-лучиться число 4231.

18. Напишите программу, которая получает с клавиатуры че-тырёхзначное число и «вырезает » из него вторую цифру с

31 http://kpolyakov.spb.ru

05.04.2019 Информатика, 8 класс К.Ю. Поляков, Е.А. Еремин

начала, например, из числа 1234 должно получиться число 134.

19. Напишите программу, которая получает с клавиатуры че-тырёхзначное число и удаляет из него первую и последнюю цифры, например, из числа 1234 должно получиться число 23.

20. Напишите программу, которая получает с клавиатуры два целых числа, а и b (a < b), и выводит на экран 5 случайных целых чисел на отрезке [a; b].

21. Напишите программу, которая моделирует бросание двух игральных кубиков: при запуске выводит случайное число на отрезке [2; 12].

22. Напишите программу, которая случайным образом выбира-ет дежурных: выводит два случайных числа на отрезке [1; N], где N количество учеников вашего класса. Какая про-блема может при этом возникнуть?

23. Напишите программу, которая получает с клавиатуры два вещественных числа, а и b (a < b), и выводит на экран 5 случайных вещественных чисел на отрезке [a; b].



Темы сообщений:

а) «Научный формат вывода чисел»

б) «Как получают псевдослучайные числа

32 http://kpolyakov.spb.ru




05.04.2019 К.Ю. Поляков, Е.А. Еремин


сложное условие операция «И» операция «ИЛИ» операция «НЕ»

логические переменные экспертная система



Информатика, 8 класс



Достарыңызбен бөлісу:
1   ...   8   9   10   11   12   13   14   15   ...   38




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет