ruby中的阶乘如何表示

Python013

ruby中的阶乘如何表示,第1张

好像没有专门的符号,要求阶乘,需要定义一个递归的方法,如N!

def fact(n)

if n == 0

1

else

n * fact(n-1)

end

end

【阶乘的概念】

阶乘(factorial)是基斯顿·卡曼(Christian Kramp,1760 – 1826)于1808年发明的运算符号.

阶乘,也是数学里的一种术语.

[编辑本段]【阶乘的计算方法】

阶乘指从1乘以2乘以3乘以4一直乘到所要求的数.

例如所要求的数是4,则阶乘式是1×2×3×4,得到的积是24,24就是4的阶乘.例如所要求的数是6,则阶乘式是1×2×3×……×6,得到的积是720,720就是6的阶乘.例如所要求的数是n,则阶乘式是1×2×3×……×n,设得到的积是x,x就是n的阶乘.

[编辑本段]【阶乘的表示方法】

在表达阶乘时,就使用“!”来表示.如x的阶乘,就表示为x!

如:n!=n×(n-1)×(n-2)×(n-3)×...×1

阶乘的另一种表示方法:(2n-1)!

当n=2时,3!=3×1=3

当n=3时,5!=5×3×1=15

当n=4时,7!=7×5×3×1=105

...(以此类推)

[编辑本段]【20以内的数的阶乘】

以下列出0至20的阶乘:

0!=1,

1!=1,

2!=2,

3!=6,

4!=24,

5!=120,

6!=720,

7!=5040,

8!=40320

9!=362880

10!=3628800

11!=39916800

12!=479001600

13!=6227020800

14!=87178291200

15!=1307674368000

16!=20922789888000

17!=355687428096000

18!=6402373705728000

19!=121645100408832000

20!=2432902008176640000

另外,数学家定义,0!=1,所以0!=1!

[编辑本段]【阶乘的定义范围】

通常我们所说的阶乘是定义在自然数范围里的,小数没有阶乘,像0.5!,0.65!,0.777!都是错误的.但是,有时候我们会将Gamma函数定义为非整数的阶乘,因为当x是正整数n的时候,Gamma函数的值是n-1的阶乘.

¤伽玛函数(Gamma Function)

Γ(x)=∫e^(-t)*t^(x-1)dt (积分下限是零上限是+∞)(x0,-1,-2,-3,……)

运用积分的知识,我们可以证明Γ(x)=(x-1) * Γ(x-1)

所以,当x是整数n时,Γ(n) = (n-1)(n-2)……=(n-1)!

这样Gamma 函数实际上就把阶乘的延拓.

¤欧拉等式

x!=)=∫-(ln(x))^ndx (积分下限是零上限是+1)(x>0)

¤[计算机科学]

用Ruby求365的阶乘.

def AskFactorial(num) factorial=1

1.step(num,1){|i| factorial*=i}

return factorial end factorial=AskFactorial(365)

puts factorial

¤【阶乘有关公式】

n!sqrt(2*pi*n)(n/e)^n

该公式常用来计算与阶乘有关的各种极限.

通常我们所说的阶乘是定义在自然数范围里的(大多科学计算器只能计算 0~69 的阶乘),小数科学计算器没有阶乘功能,如 0.5!,0.65!,0.777!都是错误的。但是,有时候我们会将Gamma 函数定义为非整数的阶乘,因为当 x 是正整数 n 的时候,Gamma 函数的值是 n-1 的阶乘。 定义伽马函数:

运用积分的知识,我们可以证明Γ(s)=(s)× Γ(s-1)

所以,当 x 是整数 n 时,

这样 Gamma 函数实际上就把阶乘的延拓。 用Ruby求 365 的阶乘。

def AskFactorial(num) factorial=1

step(num,1){|i| factorial*=i}

return factorial end factorial=AskFactorial(365)

puts factorial 该公式常用来计算与阶乘有关的各种极限。

此为斯特林公式的简化公式(完整的见下图)。