Top.Mail.Ru
Ответы

ПОМОГИТЕ С ЗАДАЧЕЙ ИЗ 8 НОМЕРА ЕГЭ ПО ИНФОРМАТИКЕ!

Все 6-буквенные слова, в составе которых могут быть только буквы П, Р, О, Б, Н, И, К, записаны в алфавитном порядке и пронумерованы.

Вот начало списка:

ББББББ
БББББИ
БББББК
БББББН
БББББО
БББББП
БББББР
ББББИБ
...
Под каким номером в списке идёт последнее слово с тремя буквами О (остальные буквы при этом не повторяются)?

from itertools import *
k=0
for n in permutations(sorted(set('ПРОБНИК')),6):
a=''.join(n)
k+=1
if a=='PПНOOO':
print(k)

что не так?

Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
Аватар пользователя
Высший разум
2мес

У тебя шестизначное число в 7-ричной системе счисления:
Б - 0, И - 1, К - 2, Н - 3, О - 4, П - 5, Р - 6.
Максимальное число (последнее слово) в котором три цифры 4 (т.е. 'O') и остальные цифры не повторяются:
654443₇: не PПНOOO, а РПОООН
Номер слова на 1 больше значения числа.

ВЕСЬ код программы:

1
 print(int('654443', 7) + 1) 


Ошибка же твоего кода (кроме неправильного слова) в том, что перебор всех вариантов с повторами элементов делается иначе:

1
 for n in product(*[sorted('ПРОБНИК')] * 6):