М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
hazret
hazret
18.01.2022 18:48 •  Информатика

В понеділок Толя позичив у Сергійка 2 цукерки із задоволенням їх з'їв. У вівторок він позичив у 2 рази більше цукерок, після чого віддав половину
боргу, а решту із задоволенням з'їв. Кожного наступного дня він позичав у 2
рази більше цукерок, віддавав з них цілу частину з половини боргу , а решту
з'їдав. Скільки цукерок з'їсть Толик та який у нього буде борг m на кінець n
дня?
Вхідні дані: - кількість днів
Вихідні дані К- кількість цукерок, які з'їв
m — борг цукерок​

робити в python


В понеділок Толя позичив у Сергійка 2 цукерки із задоволенням їх з'їв. У вівторок він позичив у 2 ра

👇
Открыть все ответы
Ответ:
marat5230
marat5230
18.01.2022

A = [75, 31, 80, 40, 48, 40]  # любой список

# Готовые решения для этих задач:

print(sum(A))  # Сумма

# Произведение

A = [35, 2, 82, 10, 44, 42]

import functools

import operator  # содержит все возможные операции

print(functools.reduce(  # reduce - применить операцию ко всем элементам списка поочерёдно

       operator.mul,  #  операция умножения

       A))

# Через цикл

# Сумма:

S = 0

for i in A: S += i  # Сложить все элементы A, результатом будет переменная S

print(S)

# Произведение:

M = 1  # Если будет 0, то всё выражение тоже будет 0

for i in A: M *= i


# Или

if 0 in A: M = 0

else:

   for i in A: M *= i

print(M)

4,7(92 оценок)
Ответ:
nargizdjgalova
nargizdjgalova
18.01.2022

Первая строка описывает импорт функции permutations из модуля itertools. Теперь мы можем ее использовать.

Далее, конструкция ''.join(b) используется для преобразования кортежа/массива в строку. Например, у нас есть кортеж ('1','2','3') и мы хотим получить из него строчку '123'. Для этого нам надо пройтись по каждому элементу кортежа и присоединять(по-английски join) их к изначально пустой строке. Проход по каждому элементу кортежа в данном случае описан как "({присоединение} for b in {собственно сам кортеж})", где b - элемент кортежа. Теперь про то, что здесь используют в качестве кортежа: permutations - с англ. значит перестановки. То есть, условно, у нас есть слово КОТ, применяем permutations(КОТ) и получаем такие вариации как КОТ, КТО, ОКТ, ОТК, ТКО, ТОК (само слово тоже учитывается, как и в задании).

Однако функция permutations возвращает все эти варианты перестановок как кортежи, то есть, как ('К', 'О', 'Т'), ('К', 'Т', 'О') и т.д. Поэтому-то мы и используем join, чтоб получить из кортежей строки для удобной работы. Теперь стоит заметить, что при наличии в слове одинаковых букв в вариациях перестановок могут получиться совпадающие позиции, так как для компьютера перестановка, например, в слове "ЛОТО" второй и четвертой буквы "О" будет давать новую вариацию, а для нас это все еще будет то же слово ЛОТО, ведь были поменяны местами две одинаковые буквы. Для избежания этой проблемы стоит прописать перед всем массивом с перестановками функцию set, которая просто уберет из него повторяющиеся элементы.

В следующей строке мы создаем массив только из тех строк полученного нами ранее массива с перестановками, которые удовлетворяют условию задания, а именно: не имеют одинаковых соседних букв. Почему это прописано как "if "ОО" not in b"(если "ОО" не в b)? Все просто: в перестановке слова ОДЕКОЛОН две соседние буквы могут быть только ОО, ведь у других букв банально нет пары. В итоге мы проходимся по каждому элементу нашего кортежа с вариациями, и смотрим есть ли в очередной вариации подстроки с двумя буквами О подряд. Если нет - то добавляем в массив, если есть - пропускаем.

В третьей строке выводится количество элементов (len(сокращение length - англ. длина) для массива - кол-во элементов в нем) в полученном массиве, то есть количество вариантов перестановок, где нет слов с одинаковыми соседними буквами.

4,4(44 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ