yolga
@yolga
Постигающий

Как вывести все возможные комбинации бросков двух кубиков?

День добрый!

Помогите решить задачку по основам python, пожалуйста. Там надо сделать в виде цикла, желательно без сторонних модулей.

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


Буду очень признателен любой помощи.
  • Вопрос задан
  • 2335 просмотров
Решения вопроса 1
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
Я люблю всех однострочниками наказывать:
py -c "n,m=int(input('n=')),int(input('m='))" "((a, b) for a in range(1,n+1) for b in range(1,m+1))"

У вас в задании сказано, что кубики "разные". Понимаю это так, что мы их можем различить даже если число граней на них одинаково, например по цвету.
Следовательно даже в этом случае мы сможем различить комбинации, например (3, 5) и (5, 3). Кубики-то разные.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Для вдохновения можно использовать itertools:
from itertools import combinations_with_replacement
list(combinations_with_replacement('123456', 2))


Для неограниченного числа граней подход другой.
Можно сделать два цикла сделать, один вложен в другой:
внешний перебирает грани 1-го кубика, вложенный – 2-го.
для грани_кубика_1 в диапазоне(число_граней):
    для грани_кубика_2 в диапазоне(число_граней):
        вывести комбинацию грань_кубика_1, грань_кубика_2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы