8.02 Подсчет количества слов/чисел
Ошибка.
Попробуйте повторить позже
При регистрации на некоторой платформе есть возможность выбрать себе логин по следующему принципу:
1) Используются только строчные и заглавные буквы латинского алфавита, а также цифры от 0 до 9 включительно;
2) Логин должен начинаться с гласной буквы;
3) Логин должен оканчиваться цифрой;
4) Логин должен состоять из 4 символов.
Какое максимальное количество логинов может быть использовано на сайте?
Примечание. В латинском алфавите 26 букв, 6 из них гласные.
Решение руками
Длина у логина 4, значит, нужно перемножить 4 числа, каждое из которых означает количество возможных букв на каждое место.
Первый множитель — 12(6 гласных букв, каждая может быть как строчной, так и заглавной)
Второй множитель и третий множитель — 62(26 букв, каждая может быть как строчной, так и заглавной, а также десятичные цифры)
Четвёртый множитель — 10(десятичные цифры)
Вычисляем — 12*62*62*10 = 461280
Решение через циклы
Напишем программу для перебора всех 4-символьных логинов с учётом условий: первая буква – гласная (строчная или
заглавная), вторая и третья могут быть любыми буквами латинского алфавита или цифрами, четвёртая – только
цифра. Для этого организуем 4 вложенных цикла, формирующих все комбинации. Каждый раз при составлении логина
увеличиваем счётчик.
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
Для решения с помощью модуля itertools используем функцию product, которая генерирует все комбинации заданной
длины с повторениями. Первая буква берётся из строки гласных (строчных и заглавных), вторая и третья – из букв
латинского алфавита и цифр, четвёртая – из цифр. В итоге все условия соблюдены за счёт правильного перебора.
Каждое слово добавляется во множество, чтобы исключить дубликаты. В конце выводим количество элементов в
множестве.
import string from itertools import product letters = string.ascii_letters # все латинские буквы digits = "0123456789" count = set() # множество для хранения уникальных логинов # Первая буква - гласная for x1 in product("aeiouyAEIOUY", repeat=1): s1 = "".join(x1) # Вторая и третья буквы - любые буквы или цифры for x2x3 in product(letters + digits, repeat=2): s2s3 = "".join(x2x3) # Четвёртая буква - цифра for x4 in product(digits, repeat=1): s4 = "".join(x4) count.add(s1 + s2s3 + s4) # добавляем логин в множество print(len(count)) # выводим количество уникальных логинов
Специальные программы

Программа
лояльности v2.0
Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!
Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное онлайн-обучение
Для школьников из приграничных территорий России, проживающих в ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Курской, Брянской областях и Крыму.

Налоговые вычеты
Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей
Бесплатный доступ к любому курсу подготовки к ЕГЭ, ОГЭ и олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ
Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!