f(x)=xf(x-1)求f(x)的表达式

aaronong 发布于 2012/11/28 10:12
阅读 717
收藏 0

#coding=utf-8
def factorial(x):
    if x == 0: 
        return 1
    else: 
        return x * factorial(x - 1) 
print factorial(6)

factorial(6)计算结果是720

看上去这个函数就是f(x)=x*f(x-1),那么f(x)的表达式是什么呢?请高手给出计算方法。

加载中
0
random_walk
random_walk
random_walk
回复 @yyliu : 主要是这个太简单了,sympy都可以做
yyliu
yyliu
何必劳烦计算机代数系统……
0
firstrose
firstrose
x!
阶乘
稍微学点数学吧骚年
0
loki_lan
loki_lan
递归的思想。
0
Jasonhoho
Jasonhoho
f(x)/f(x-1)=x
0
random_walk
random_walk

使用Python的sympy模块:

from sympy import Function, rsolve, var
y = Function('y')
var('n')
print rsolve(y(n)-n*y(n-1), y(n), {y(1):1})

yyliu
yyliu
回复 @yhc0309 : 其实,虽然无关紧要,但qtconsole是令一回事……
random_walk
random_walk
回复 @yyliu : 哦,忘了,Ipython还有个QT做的notebook界面,我刚才想到的是控制台的
yyliu
yyliu
回复 @yhc0309 : ipython notebook也是啊。又看到标题有nb(notebook)第一眼还以为ipython notebook界面……
random_walk
random_walk
回复 @yyliu : 这个界面是Mathematica自带的前端,In Out是很像,但是还能容纳图像、三维模型等
yyliu
yyliu
怎么感觉mathmetica这么像ipython……
0
刘繁超

没有定义域吗,如果是如果是0到正无穷(包含0)是不是就是说f(x)=0,X轴正轴,一条射线

如果是负无穷到0(不包含0)呢,我没想到结果,还有,yhc0309说的f(0)=1是怎么来的

刘繁超
f(0)=0*f(X-1)=1,这个不成立啊
random_walk
random_walk
他代码里的if语句写明了f(0)=1
yyliu
yyliu
提问的人给的……
0
刘繁超
那么X不取整数呢,怎么算?
random_walk
random_walk
伽马函数,参见http://reference.wolfram.com/mathematica/ref/Gamma.html
0
a
aaronong

还是之前关于f(x)=xf(x-1)的问题,

1、为啥直接写成如下会报错?

def f(x):
    if x > 0: 
        return x * f(x - 1) 
print f(5)

2、当x==0的时候为啥return 1和return 2不同的值会导致后面计算f(6)的值不一样?难道x==0的时候f(x)的值会导致f(x)的表达式不再是x!阶乘?

def f(x): 
    if x == 0: 
        return 1 
    else: 
        return x * f(x - 1) 
print f(6)

yyliu
yyliu
1.你的初始值呢?到递归到0时怎么办 2.……不知道你想说什么
0
ydx2008
ydx2008
很像高中的数学题
返回顶部
顶部