2016-10-04 1 views
-3

У меня есть 2 вопроса, с которыми мне нужно обратиться за помощью. Один вопрос, который я не совсем понимаю, если кто-то может мне помочь, это будет здорово.Python Iteration Домашнее задание

Вопрос Один (тот, я не совсем понимаю):

Одно определение е является

Formula for e

Это может быть вычислено как my_e = 1/math.factorial (0) + 1/math.factorial (1) + 1/math.factorial (2) + 1/math.factorial (3) + ...

Пусть n - номер входа функции math.factorial(). n последовательно принимает 0, 1, 2, 3 и т. д. Найдите наименьшее n, так что абсолютное значение (my_e - math.e) меньше или равно 10-10. То есть abs (my_e - math.e) < = (10 ** -10).

Я просто не совсем понимаю, что меня просят сделать. Уточнение было бы замечательным. Благодаря!

Вопрос 2:

Попросите пользователя ввести ряд целых чисел. Суммируйте их и распечатайте сумму и количество целых чисел, введенных пользователем.

My code

Так что должно произойти после я ввожу число, я хочу, чтобы войти и нажмите клавишу ввода, он должен рассчитать и распечатать «сумма = 25 кол = 3». Снимок экрана показывает, какое сообщение об ошибке я получаю.

Любая помощь, которую вы получили, приветствуется и очень ценится.

+1

Мы не собираемся делать домашнее задание для вас. Как насчет того, чтобы вы нашли время, чтобы прочитать правило, [помощь], [faq], [mcve], а затем задать новый вопрос, который следует за ними, а затем, возможно, мы сможем вам помочь. –

+1

Кроме того, один вопрос на вопрос, так как эти два абсолютно не связаны с техникой. – Macke

+1

Это отличный вопрос: ** спросите своего инструктора ** или преподавателя вашего факультета * о том, что задание просит вас сделать. StackOverflow на самом деле не является местом для уточнения домашнего задания учителя, лучшим ответом для этого будет тот, кто * назначил вам домашнюю работу *. После этого, если у вас есть особые трудности с разработкой решения для назначения, здесь можно получить помощь. – davedwards

ответ

0

Насколько идет вам первый вопрос:

>>> import math 
>>> math.e 
2.718281828459045 
>>> sum(1.0/math.factorial(i) for i in range(5)) 
2.708333333333333 
>>> abs(sum(1.0/math.factorial(i) for i in range(5)) - math.e) < 10**-10 
False 
>>> abs(sum(1.0/math.factorial(i) for i in range(30)) - math.e) < 10**-10 
True 

Итак, где-то между n == 5 и n == 30 вы получите 10 знаков после запятой для e. Создайте сумму в терминах while-loop (вместо использования функции sum, как у меня, так как вы вряд ли увидели этот синтаксис). На каждом проходе через петлю сравните сумму с math.e. Остановитесь, когда получите целевую точность. Верните окончательный n.

+0

Большое вам спасибо! Это даже больше, чем я просил. Теперь я понимаю. Я действительно ценю это, и еще раз спасибо! –