Задача. Сколько существует шестнадцатеричных трехзначных чисел, в которых все цифры различны и никакие две четные или две нечетные цифры не стоят рядом?
Приведем решение задачи на языке Python
Как будем решать задачу
Получим все возможные трехзначные шестнадцатеричные числа функцией product - кортеж цифр x:
abc = '0123456789ABCDEF'
for x in product(abc, repeat = 3):
Функция product аналогична функции cartesian в PascalABC.NET.
Выполним проверку
- первая цифра числа не равна 0 (число должно быть трехзначным): x[0]!='0'
- все цифры числа различны (длина множества цифр равна количеству цифр в числе): len(set(x)) == len(x)
- четность у соседних цифр различна: int(x[0],16) % 2 != int(x[1],16) % 2 and int(x[1],16) % 2 != int(x[2],16) % 2
Если все условия выполняются, будем копить счетчик k
Программа решения задачи на языке Python
from itertools import *
abc = '0123456789ABCDEF'
k = 0
for x in product(abc, repeat = 3):
if x[0]!='0':
if len(set(x)) == len(x):
if int(x[0],16) % 2 != int(x[1],16) % 2 and int(x[1],16) % 2 != int(x[2],16) % 2:
k+=1
print(k)
Ответ: 840
Как решить комбинаторную задачу про слова. Валя составляет шестибуквенные слова из букв слова ГРОЗА Читать |
Лера составляет 5-буквенные слова из букв слова ЛОГАРИФМ (перестановки) Читать |
Все шестибуквенные слова, составленные из букв МАНГУСТ, записаны в алфавитном порядке и пронумерованы (декартово произведение) Читать |
Комментариев нет:
Отправить комментарий