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)