Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 25, 2014 04:39:08

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

Нужна программа:
Имеется реализованная функция f(x), принимающая на вход целое число x.
Функция вычисляется достаточно долго..

Напишите программу, которой на вход в первой строке подаётся число n — количество значений x, на которых требуется узнать значение функции f(x), после чего сами эти n значений, каждое на отдельной строке. Программа должна считать со стандартного ввода переданную информацию и вывести соответствующие значения функции f для каждого x.

Для ускорения вычисления необходимо сохранять уже вычисленные значения функции при известных аргументах.
ps:python3

Пример ввода вывода: http://i66.fastpic.ru/big/2014/1125/98/955dfd72a1fd947b72c3f1371ea9e798.jpg

Офлайн

#2 Ноя. 25, 2014 07:47:47

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

def f(x):
    YOURCODE
f_dict = {}  # Словарь для уже вычисленных значений f(x)
n = int(input('Vvedite chislo n: '))
x_list = [int(input('x: ')) for x in range(n)]
for x in x_list:
    if x not in f_dict:
        f_dict[x] = f(x)
    print(f_dict[x])

Отредактировано botinag (Ноя. 25, 2014 07:53:24)

Офлайн

#3 Ноя. 25, 2014 22:56:03

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

botinag, прога не правильно вводит и выводит значения.. и ещё ошибка ((
http://i64.fastpic.ru/big/2014/1125/bb/698d832467c59467cf42f079966ebdbb.jpg

Офлайн

#4 Ноя. 26, 2014 07:06:52

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

Stroncy
прога не правильно вводит и выводит значения.. и ещё ошибка ((
конечно. ведь вместо
def f(x):
    YOURCODE
нужно вставить или импортировать
Stroncy
функция f(x), принимающая на вход целое число x.

Офлайн

#5 Ноя. 26, 2014 09:40:06

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

botinag, блин.. я не знаю как этот код запихнуть в тест (( .. выдаёт ошибки..

..Туда куда нужно вписывать этот код(на тесте), ещё такой комент есть:
# Считайте, что функция f(x) уже определена выше. Определять её отдельно не требуется.
..ещё есть такой комментарий: f(x) должна выводиться после каждого x

Отредактировано Stroncy (Ноя. 26, 2014 09:47:51)

Офлайн

#6 Ноя. 26, 2014 11:39:34

botinag
Зарегистрирован: 2014-02-20
Сообщения: 179
Репутация: +  35  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

Stroncy
# Считайте, что функция f(x) уже определена выше. Определять её отдельно не требуется.
..ещё есть такой комментарий: f(x) должна выводиться после каждого x
значит надо вводить так:
f_dict = {}  # Словарь для уже вычисленных значений f(x)
n = int(input('Vvedite chislo n: '))
for i in range(n):
    x = int(input('x: '))
    if x not in f_dict:
        f_dict[x] = f(x)
    print(f_dict[x])

Отредактировано botinag (Ноя. 26, 2014 11:40:09)

Офлайн

#7 Ноя. 26, 2014 12:31:49

Stroncy
Зарегистрирован: 2014-11-20
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

botinag, Спасибо за это решение и за остальные!!!
..всё подошло!

Офлайн

#8 Ноя. 26, 2014 13:48:57

burrunduk
Зарегистрирован: 2014-11-25
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Функция с "ускоренным" вычислением.

Stroncy, почему молчишь? проверь почту свою, и ответь уже мне)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version