14. Максимальное число в последовательности. (в коде есть строки из следующих тем: "библиотеки").
Условие:
Это упражнение преследует цель идентификации количества смен максимального значения в коллекции случайных чисел.
Ряд должен быть заполнен числами от 1 до 100.
При этом последовательность может содержать дубликаты, а некоторых чисел из диапазона от 1 до 100 в ней может не быть.
Сделайте паузу и подумайте с листочком в руках, как вы решили бы эту задачу. Многие стали бы сравнивать каждое очередное выпавшее число с текущим максимумом в последовательности и при необходимости обновлять максимум.
Это вполне подходящий способ, который приведет к правильному результату при соблюдении алгоритма.
А как вы думаете, сколько раз обновится максимум на протяжении генерирования всей последовательности?
На этот вопрос можно ответить при помощи теории вероятностей, но мы попробуем провести необходимые симуляции.
Для начала в вашей программе должно выбираться случайное число из диапазона от 1 до 100.
Сразу сохраните это значение как максимальное. Далее сгенерируйте еще 99 случайных чисел в том же диапазоне.
Для каждого значения выполняйте ту же проверку и при необходимости обновляйте максимум, попутно увеличивая переменную, хранящую количество «смен лидера», на единицу.
Выводите каждое сгенерированное число на новой строке, добавляя примечание в случае, если на этом шаге обновлялся максимум и сколько раз обновлялся максимум.
Код:
import random
count = 0
digit_max = 0
change_max_count = 0
while count < 100:
count += 1
digit_x = random.randint(1, 100)
if digit_x > digit_max:
digit_max = digit_x
change_max_count += 1
print("Счётчик:", "%5s" % count, " новая цифра:", "%5s" % digit_x, " - это новый максимум", "%5s" % change_max_count, "-я смена максимума")
else:
print("Счётчик:", "%5s" % count, " новая цифра:", "%5s" % digit_x)