Статья Автор: Лебедев Дмитрий

TUZ_3-06 Левосторонний игральный кубик

TUZ_3-06 Левосторонний игральный кубик

TUZ_3-06 Левосторонний игральный кубик
3.6. Левосторонний игральный кубик
Рассмотрим игральные кубики, имеющие шесть граней с точками от одной до шести и восемь углов,
причем если смотреть с каждого угла, то видны три грани. Левосторонние и правосторонние кубики выглядят по-разному.
Например, на рис. 3.1 (б) изображен левосторонний кубик, а на рис. 3.1 (а) – правосторонний.
Чтение видимых граней производится слева направо (по часовой стрелке).
Для левостороннего кубика числа читаются как 1, 2, 3.
Если повернуть левосторонний кубик против часовой стрелки, то, следуя тому же правилу,
мы прочитаем 2, 3, 1, если повернуть еще раз, то  3, 1, 2.
Следовательно, при взгляде на угол левостороннего кубика, объединяющий грани 1, 2, 3, мы имеем три перестановки 1, 2, 3; 2, 3, 1 и 3, 1, 2.
Кубик имеет восемь разных углов, и для каждого возможны три перестановки, поэтому общее число перестановок равно 8 × 3 = 24.
То же верно и для правостороннего кубика. Всего имеется 24 + 24 = 48 перестановок для левостороннего и правостороннего кубиков вместе.
Ваша задача: написать функцию на Python, которая принимает угол и определяет, является кубик левосторонним или правосторонним.
Если кубик левосторонний, то функция должна вернуть True, в противном случае – False.

В табл. 3.6 показаны ожидаемые результаты для некоторых входных данных.
Таблица 3.6. Некоторые ожидаемые результаты для задачи определения типа кубика, лево- или правостороннего 
n Ожидаемый результат 
(4, 2, 1) True
(6, 3, 2) True
(6, 5, 4) False

Алгоритм
Количество перестановок чисел в левостороннем (и правостороннем) кубике невелико,
достаточно найти 24 левосторонних угла, и если входные данные совпадают с рассматриваемым углом,
то следует вернуть True, в противном случае – False.


Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать