Если разрисовывать варианты составления слов, то на рисунке получится древовидная структура, со множеством разветвлений (это я показал на рисунке, для первых двух этапов).
Начало- пункт старт.
1) Выбираем первую букву: от пункта старт идут пять ответвлений- по количеству букв, которые можно поставить на первое место в слове (буквы АГЖФЯ -в каждом ответвлении мы выбираем одну из них).
2) Выбираем вторую букву: от каждой буквы первого этапа идут по четыре ответвления (ведь одну букву мы уже использовали, поставив её на первое место, теперь у нас остаётся четыре буквы; в каждом ответвлении мы выбираем одну из них). Получается, у нас было пять начальных вариантов, и каждый из них разветвился ещё на четыре варианта- то есть было пять вариантов, а стало в четыре раза больше (5*4=20 вариантов).
3) Выбираем третью букву: от каждой буквы второго этапа идут по три ответвления. Получается 5*4*3=60 вариантов.
Это и есть число возможных трёхбуквенных слов- 60. Для каждого из этих слов в дереве есть отдельный путь от пункта старт до выбора третьей буквы.
Рисовать всё дерево вариантов не обязательно, ведь оно весьма большое. Достаточно понять принцип, как оно строится, и как посчитать число вариантов.
# Используется версия python 3.6. # 1. Список с положительными и отрицательными десятичными числами. x = [1.0, -6.54, 10.5, 3.6, -12.6, -26.3, -50.8, -40.2, 5.0, 14.2, 50.9] # 2. Нахождение максимального числа среди тех чисел, которые # находятся в интервале: (-30, -10). cond2 = max([el for el in x if el > -30 and el < -10]) # 3. Нахождение минимального числа среди тех, у которых # целая часть заканчивается на 6. cond3 = min([el for el in x if abs(int(el)) % 10 == 6]) # 4. Нахождение среднего арифметического всех чисел и # замена всех мин. чисел на среднее арифметическое. x_copy = x.copy() mean = sum(x) / len(x) for idx, el in enumerate(x_copy): if el < mean: x_copy[idx] = mean # 5. Запись в новый список тех положительных элементов, у которых # в дробной части есть 5. new_list = list() for el in x: str_el = str(el) pos_point = str_el.find('.') fraction = str_el[pos_point:] # дробная часть числа в виде строки if '5' in fraction: new_list.append(el) print(x, cond2, cond3, x_copy, new_list, sep='\n')
Начало- пункт старт.
1) Выбираем первую букву: от пункта старт идут пять ответвлений- по количеству букв, которые можно поставить на первое место в слове (буквы АГЖФЯ -в каждом ответвлении мы выбираем одну из них).
2) Выбираем вторую букву: от каждой буквы первого этапа идут по четыре ответвления (ведь одну букву мы уже использовали, поставив её на первое место, теперь у нас остаётся четыре буквы; в каждом ответвлении мы выбираем одну из них).
Получается, у нас было пять начальных вариантов, и каждый из них разветвился ещё на четыре варианта- то есть было пять вариантов, а стало в четыре раза больше (5*4=20 вариантов).
3) Выбираем третью букву: от каждой буквы второго этапа идут по три ответвления. Получается 5*4*3=60 вариантов.
Это и есть число возможных трёхбуквенных слов- 60.
Для каждого из этих слов в дереве есть отдельный путь от пункта старт до выбора третьей буквы.
Рисовать всё дерево вариантов не обязательно, ведь оно весьма большое. Достаточно понять принцип, как оно строится, и как посчитать число вариантов.