При регистрации на некоторой платформе есть возможность выбрать себе логин по следующему принципу:
1) Используются только строчные и заглавные буквы латинского алфавита, а также цифры от 0 до 9 включительно;
2) Логин должен начинаться с гласной буквы;
3) Логин должен оканчиваться цифрой;
4) Логин должен состоять из 4 символов.
Какое максимальное количество логинов может быть использовано на сайте?
Примечание. В латинском алфавите 26 букв, 6 из них гласные.
Решение руками
Длина у логина 4, значит, нужно перемножить 4 числа, каждое из которых означает количество возможных букв на каждое место.
Первый множитель — 12(6 гласных букв, каждая может быть как строчной, так и заглавной)
Второй множитель и третий множитель — 62(26 букв, каждая может быть как строчной, так и заглавной, а также десятичные цифры)
Четвёртый множитель — 10(десятичные цифры)
Вычисляем — 12*62*62*10 = 461280
Решение через циклы
abc = ’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’
ds = ’0123456789’
k = 0
for a in ’aeiouyAEIOUY’:
for b in abc+ds:
for c in abc+ds:
for d in ds:
k += 1
print(k)
Решение через itertools
import string
from itertools import product
# функция ascii_letters из класса string возвращает строку прописных и заглавных букв латинского алфавита.
word = string.ascii_letters
digits = ’0123456789’
count = set()
for x1 in product(’aeioyuAEIOYU’,repeat = 1):
s1 = ’’.join(x1)
for x2x3 in product(word+digits,repeat = 2):
s2s3 = ’’.join(x2x3)
for x4 in product(digits,repeat = 1):
s4 = ’’.join(x4)
count.add(s1+s2s3+s4)
print(len(count))