Предмет: Информатика, автор: 1MaTBeu1

Даю 100 балів! Будь ласка, виполните на Python
Однажды вы оказались в казино и сразу увидели большую слот-машину, состоящую из N барабанов и N кнопок — по одной напротив каждого барабана. На i -м барабане находились символы строки Si , записанные вдоль барабана. Строка Si состоит только из символов от 0 до 9 , причем каждый символ встречается ровно один раз.

Долго наблюдая за остальными игроками, вы нашли закономерность: если нажать кнопку напротив i -го барабана в момент времени t(t≥0) , то при остановке на нем будет записан (t mod 10)+1 -й символ строки Si.
Используя эту информацию вы решили сорвать джекпот, а именно добиться ситуации, что на все числа на барабанах после остановки будут равны. Однако в каждую секунду вы можете нажимать не более одной кнопки. Найдите минимальное время, за которое вы можете нажать кнопки так, чтобы сорвать джекпот!



Формат входных данных
В первой строке вводится целое число N(2≤N≤100) – число барабанов в машине.
Затем в N строках вводится по одной строке Si длины 10 . Гарантируется, что строка Si состоит только из символов от 0 до 9 , причем каждый символ встречается ровно один раз.



Формат выходных данных
Выведите одно число — минимальное время, за которое вы можете нажать кнопки так, чтобы все барабаны после остановки показали одинаковые числа.



Замечание
В первом примере оптимальной будет следующая стратегия:

В момент времени 0 нажать кнопку у 2 -го барабана. Тогда после остановки на нем будет записан (0 mod 10+1)=1 -й символ S2 , то есть 8
В момент времени 2 нажать кнопку у 3 -го барабана. Тогда после остановки на нем будет записан (2 mod 10+1)=3 -й символ S3 , то есть 8
В момент времени 6 нажать кнопку у 1 -го барабана. Тогда после остановки на нем будет записан (6 mod 10+1)=7 -й символ S1 , то есть 888


Таким образом, за 666 секунд мы добьемся того, чтобы после остановки на всех барабанах было записано число 888 . Можно показать, что этот ответ является оптимальным.



Во втором примере оптимальной будет следующая стратегия:

В момент времени 0 нажать кнопку у 1 -го барабана. Тогда после остановки на нем будет записан (0 mod 10+1)=1 -й символ S1, то есть 9
В момент времени 10 нажать кнопку у 2 -го барабана. Тогда после остановки на нем будет записан (10 mod 10+1)=1 -й символ S2, то есть 9
В момент времени 20 нажать кнопку у 3 -го барабана. Тогда после остановки на нем будет записан (20 mod 10+1)=1-й символ S3, то есть 9


Таким образом, за 20 секунд мы добьемся того, чтобы после остановки на всех барабанах было записано число 9 . Можно показать, что этот ответ является оптимальным. Обратите внимание, что мы не можем нажимать кнопки напротив нескольких барабанов одновременно.

Ответы

Автор ответа: UNCLERUS
0

Ответ:

import random

import math

limit = 1000

acc = 0

results = []

exp = 1000

for i in range(exp):

 color = 0

 amount = 10000

 max_amount = amount

 bid = 1

 count = 0

 while count < limit and amount > 0 :

   amount = amount - bid

   next = random.randint(0, 1)

   if next == color :

     amount = amount + bid + bid

     bid = 1

     # color = 1 if color == 0 else 0

     if amount > max_amount:

       max_amount = amount

   else :

     bid = bid + bid

   count = count + 1

 acc = acc + max_amount

 results.append(max_amount)

 print("Exp {}".format(i))

avg = acc / exp

acc = 0

for i in range(len(results)):

 acc = acc + math.pow(results[i] - avg, 2)

std = math.sqrt(acc / exp)

print("Average max amount earned {} with standard deviation {}".format(avg, std))

Объяснение:

Python казино

Похожие вопросы
Предмет: Українська мова, автор: татьяна575
Предмет: Окружающий мир, автор: ojg