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

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

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

Пример ввода вывода: http://i66.fastpic.ru/big/2014/1125/98/955dfd72a1fd947b72c3f1371ea9e798.jpg
botinag
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])

Stroncy
botinag, прога не правильно вводит и выводит значения.. и ещё ошибка ((
http://i64.fastpic.ru/big/2014/1125/bb/698d832467c59467cf42f079966ebdbb.jpg
botinag
Stroncy
прога не правильно вводит и выводит значения.. и ещё ошибка ((
конечно. ведь вместо
def f(x):
    YOURCODE
нужно вставить или импортировать
Stroncy
функция f(x), принимающая на вход целое число x.
Stroncy
botinag, блин.. я не знаю как этот код запихнуть в тест (( .. выдаёт ошибки..

..Туда куда нужно вписывать этот код(на тесте), ещё такой комент есть:
# Считайте, что функция f(x) уже определена выше. Определять её отдельно не требуется.
..ещё есть такой комментарий: f(x) должна выводиться после каждого x
botinag
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])
Stroncy
botinag, Спасибо за это решение и за остальные!!!
..всё подошло!
burrunduk
Stroncy, почему молчишь? проверь почту свою, и ответь уже мне)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB