Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 2, 2008 15:26:22

STS
От:
Зарегистрирован: 2008-12-02
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

Вот задачка: Даны действительное число a и натуральное n. Вычислить:
a(a+1)…(a+n-1)
я не могу формулу вывести, помогите пожалуйста… но если не трудно можно и полностью задачку…заранее спасибо…



Офлайн

#2 Дек. 2, 2008 15:35:27

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

reduce(lambda x, y: x*y, xrange(a, n))



Офлайн

#3 Дек. 2, 2008 15:37:41

STS
От:
Зарегистрирован: 2008-12-02
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

если не трудно а по русски как это читается?=) (просто чтоб понять)



Офлайн

#4 Дек. 2, 2008 23:54:48

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Проблемы с выводом формулы

STS… Что-то мне твоё имя попоминает… Или кого-то… :-)

По-русски не знаю, но предлагаю тебе разобрать каждую строчку из приведённого ниже кода и, если справишься, поймёшь и запомнишь.

Last login: Tue Dec  2 21:13:18 on ttys000
ttys000 /Users/zzz $ python [0:46]
Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26)
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> help(reduce)
Help on built-in function reduce in module __builtin__:

reduce(...)
reduce(function, sequence[, initial]) -> value

Apply a function of two arguments cumulatively to the items of a sequence,
from left to right, so as to reduce the sequence to a single value.
For example, reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) calculates
((((1+2)+3)+4)+5). If initial is present, it is placed before the items
of the sequence in the calculation, and serves as a default when the
sequence is empty.
P.S. Dimka665, +1 за красивый ответ.



Офлайн

#5 Дек. 3, 2008 07:44:21

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

ZZZ, я тоже сначала так подумал, но вроде не он..
STS, а как это по русски? Тебе задачу задали решить на русском языке, либо всетаки на лекциях по программированию на питоне?



Офлайн

#6 Дек. 3, 2008 14:09:25

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

STS
Попробуй разобрать каждое действие отдельно, и выложи сюда. Поправим что не так понимаешь.

Офлайн

#7 Дек. 3, 2008 17:06:31

STS
От:
Зарегистрирован: 2008-12-02
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

Незнаю насчет “reduce(lambda x, y: x*y, xrange(a, n))” а так не легче?:
print “Enter a”
a=float(raw_input())
print “Enter n”
n=int(raw_input())
i=1
result=1
while i<n:
m=a+i
result=result*m
i=i+1
result=result*a
print result



Офлайн

#8 Дек. 3, 2008 20:46:47

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Проблемы с выводом формулы

Dimka665, ошибочка вышла…

print reduce(lambda x, y: x*y, xrange(a, a+n))
Скорее так, STS:
a = float(raw_input("Enter a: "))
n = int(raw_input("Enter n: "))

result = 1
for i in xrange(n):
result *= a + i
print result
Очень рекомендую пореже использовать while, потому что программа хуже читается.



Офлайн

#9 Дек. 4, 2008 07:40:45

Dimka665
От:
Зарегистрирован: 2008-09-19
Сообщения: 177
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблемы с выводом формулы

ZZZ
Dimka665, ошибочка вышла…
print reduce(lambda x, y: x*y, xrange(a, a+n))
да. но у тебя тоже неправильно))))
при a действительном, xrange выдаст предупреждение и будет возвращать целые.
reduce(lambda x, y: x*y, (a+z for z in xrange(n)))



Офлайн

#10 Дек. 5, 2008 05:29:48

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Проблемы с выводом формулы

Dimka665
да. но у тебя тоже неправильно))))
при a действительном, xrange выдаст предупреждение и будет возвращать целые.
Хм… Красивое решение. Я не додумался.



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version