В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
крутелик9
крутелик9
19.09.2020 19:38 •  Информатика

Дана действительная квадратная матрица порядка n. Найти наибольшее из значений элементов, расположенных на главной диагонали. Надо сделать статическим массивом. С++

Показать ответ
Ответ:
Alice111111111111111
Alice111111111111111
07.03.2020 16:07

Первая строка описывает импорт функции 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 - англ. длина) для массива - кол-во элементов в нем) в полученном массиве, то есть количество вариантов перестановок, где нет слов с одинаковыми соседними буквами.

0,0(0 оценок)
Ответ:
Slrudyko
Slrudyko
09.01.2021 16:57

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)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота