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

юный математик Матвей интересуется теорие вероятностей, и по этой причине у него всегда есть собой несколько стандартных шестигранны игральных кубиков. Стандартный шестигранны пары гране кубик имеет три противолежащих которые размечены таким образом, что напроти грани с числом 1 находится грань с числом напротив грани с числом 2 грань с числом 5 напротив грани с числом 3 - грань с числом 4. - - Анализируя различные игры с шестигранным кубиками, Матвей придумал новую игру. В эту игр играют два игрока, и проходит она следующи образом: первый игрок бросает один или нескольк стандартных кубиков (количество кубиков определяет сам). 0 После этого первому игрок начисляется количество очков, равное сумме чисе оказавшихся на верхних гранях всех кубиков, второму игроку сумма чисел, оказавшихся н нижних гранях этих кубиков. Побеждает тот, кт набрал больше очков. - Например, если был брошен один кубик, и н верхней его грани выпало число два, то первы игрок получает два очка, а второй пять. В сво очередь, если было брошено два кубика и на и верхних гранях выпало по единице, то первый игро получает также два очка, а второй игрок двенадцать очков, так как на нижних гранях эти кубиков оказались шестерки. Матвей рассказал об этой игре своему друг юному информатику Фоме, и они начали играть неë через Интернет. Поскольку Фома не види результат броска и не знает, сколько кубиков бросае Матвей как первый игрок, то о набранных кажды игроком очках он узнает только от Матвея. Чтоб проверить достоверность этой информации, фом решил узнать, какое минимальное и максимальнс количество ОЧКОВ мог получить он, как второ игрок, если известно, сколько очков набрал Матвей. Требуется написать программу, которая II количеству очков, набранных первым игроком посл броска, определяет наименьшее и наибольше количество очков, которые может получить второ игрок за этот бросок. помогите составить программу на python дам 50 бал​

Ответы

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

Ответ:

score1 = int(input("Введите количество очков, набранных первым игроком: "))

min_score2 = 0

max_score2 = 0

while score1 > 0:

if score1 >= 21:

min_score2 += 6

max_score2 += 36

score1 -= 21

elif score1 >= 17:

min_score2 += 5

max_score2 += 30

score1 -= 17

elif score1 >= 14:

min_score2 += 4

max_score2 += 24

score1 -= 14

elif score1 >= 12:

min_score2 += 3

max_score2 += 18

score1 -= 12

elif score1 >= 11:

min_score2 += 2

max_score2 += 12

score1 -= 11

elif score1 >= 7:

min_score2 += 1

max_score2 += 6

score1 -= 7

else:

print("Невозможное количество очков для первого игрока")

break

print("Минимальное количество очков для второго игрока:", min_score2)

print("Максимальное количество очков для второго игрока:", max_score2)

Объяснение:

Один из возможных вариантов кода:

# Вводим количество очков, набранных первым игроком

score1 = int(input("Введите количество очков, набранных первым игроком: "))

# Инициализируем минимальное и максимальное количество очков для второго игрока

min_score2 = 0

max_score2 = 0

# Пока есть очки у первого игрока, проверяем, сколько кубиков он мог бросить

while score1 > 0:

# Если очков больше или равно 21, то он мог бросить 6 кубиков

if score1 >= 21:

# Добавляем к минимальному количеству очков для второго игрока 6, так как на нижних гранях кубиков могут быть единицы

min_score2 += 6

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

max_score2 += 36

# Вычитаем из очков первого игрока 21, так как на верхних гранях кубиков могут быть единицы

score1 -= 21

# Если очков больше или равно 17, то он мог бросить 5 кубиков

elif score1 >= 17:

# Добавляем к минимальному количеству очков для второго игрока 5, так как на нижних гранях кубиков могут быть единицы

min_score2 += 5

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

max_score2 += 30

# Вычитаем из очков первого игрока 17, так как на верхних гранях кубиков могут быть единицы

score1 -= 17

# Если очков больше или равно 14, то он мог бросить 4 кубика

elif score1 >= 14:

# Добавляем к минимальному количеству очков для второго игрока 4, так как на нижних гранях кубиков могут быть единицы

min_score2 += 4

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

max_score2 += 24

# Вычитаем из очков первого игрока 14, так как на верхних гранях кубиков могут быть единицы

score1 -= 14

# Если очков больше или равно 12, то он мог бросить 3 кубика

elif score1 >= 12:

# Добавляем к минимальному количеству очков для второго игрока 3, так как на нижних гранях кубиков могут быть единицы

min_score2 += 3

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

max_score2 += 18

# Вычитаем из очков первого игрока 12, так как на верхних гранях кубиков могут быть единицы

score1 -= 12

# Если очков больше или равно 11, то он мог бросить 2 кубика

elif score1 >= 11:

# Добавляем к минимальному количеству очков для второго игрока 2, так как на нижних гранях кубиков могут быть единицы

min_score2 += 2

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

max_score2 += 12

# Вычитаем из очков первого игрока 11, так как на верхних гранях кубиков могут быть единицы

score1 -= 11

# Если очков больше или равно 7, то он мог бросить 1 кубик

elif score1 >= 7:

# Добавляем к минимальному количеству очков для второго игрока 1, так как на нижней грани кубика может быть единица

min_score2 += 1

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

max_score2 += 6

# Вычитаем из очков первого игрока 7, так как на верхней грани кубика может быть единица

score1 -= 7

# В противном случае, он не мог бросить ни одного кубика, и это ошибка

else:

print("Невозможное количество очков для первого игрока")

break

# Выводим минимальное и максимальное количество очков для второго игрока

print("Минимальное количество очков для второго игрока:", min_score2)

print("Максимальное количество очков для второго игрока:", max_score2)


dmitrijdenisov359: кажется код немного награможенный, но мне немного лень придумывать как его сделать более ёмким. Я также не уверен, что он вообще работает, потому что не проверял: если будут проблемы, не жалуетесь на ответ, а напишите комментарий, иначе я не смогу отредактировать ответ.
Похожие вопросы
Предмет: Математика, автор: s66399357
Предмет: История, автор: ilinaleksey2006