Информация об изменениях

Сообщение Re: Задание из ЕГЭ по информатике от 29.05.2017 20:01

Изменено 29.05.2017 20:03 Андрей Ушаков

Re: Задание из ЕГЭ по информатике
Здравствуйте, Serg27, Вы писали:
S>Вчера вечером дочка попросила помочь с задачей из экзамена ЕГЭ по информатике, к которому она готовится. В школе никто из них не смог, преподаватель сказал что-то умное — и его никто не понял. Язык — Python. Я сначала воспринял задачу на слух и решил

S>[q]

S>Для заданной последовательности неотрицательных целых чисел необходимо найти максимальное произведение двух её элементов, номера которых различаются не менее чем на 8. Значение каждого элемента последовательности не превышает 1000. Количество элементов последовательности не превышает 10000.

Пардон, только что заметил забавную задачку. И не понял, почему никто не предложил такой вариант? Его можно и по памяти прооптимизировать, но уже лень.

# -*- coding: utf-8 -*-

import numpy as np

s = np.array([10, 100, 45, 55, 245, 35, 25, 10, 10, 10, 26])

result = 0
max_prev = s[0]

for i in range(8, len(s)):
    result = max(result, s[i] * max_prev)
    max_prev = max(max_prev, s[i - 7])

print(result)


Ну, или
Re: Задание из ЕГЭ по информатике
Здравствуйте, Serg27, Вы писали:
S>Вчера вечером дочка попросила помочь с задачей из экзамена ЕГЭ по информатике, к которому она готовится. В школе никто из них не смог, преподаватель сказал что-то умное — и его никто не понял. Язык — Python. Я сначала воспринял задачу на слух и решил

S>[q]

S>Для заданной последовательности неотрицательных целых чисел необходимо найти максимальное произведение двух её элементов, номера которых различаются не менее чем на 8. Значение каждого элемента последовательности не превышает 1000. Количество элементов последовательности не превышает 10000.

Пардон, только что заметил забавную задачку. И не понял, почему никто не предложил такой вариант? Его можно и по памяти прооптимизировать, но уже лень.

# -*- coding: utf-8 -*-

import numpy as np

s = np.array([10, 100, 45, 55, 245, 35, 25, 10, 10, 10, 26])

result = 0
max_prev = s[0]

for i in range(8, len(s)):
    result = max(result, s[i] * max_prev)
    max_prev = max(max_prev, s[i - 7])

print(result)