MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 关于求组合数及阶乘中大数的算法。 (https://www.labfans.com/bbs/showthread.php?t=17860)

wxuesen 2012-11-13 00:02

关于求组合数及阶乘中大数的算法。
 
∑_(k=941)^1059▒〖(C k¦6000) 〖(1/6)〗^k 〖(5/6)〗^(6000-k) 〗
组合数从6000中选k个;指数(1/6)^k和(5/6)^(6000-k);三项的乘积求和从941至1059.
试了很久都运行不出结果,要么就超出了精度。
主要就是那个组合数太大了不好求,然后就是精度不够。
请教各位大神有什么好的近似代替的函数求解或求解思路,能直接给出程序最好了。
先说声谢谢了。

wxuesen 2012-11-13 00:13

回复: 关于求组合数及阶乘中大数的算法。
 
function c=com(k)
global k
syms x;
c=limit('x+6000!/k!/(6000-k+1)!',x,0);

global k
syms y;
s=0;
for k=941:1059
s=s+limit('y+com(k).*(1/6)^k.*(5/6)^(6000-k)',y,0);
end
s
这是我自己编的程序,一运行就死机了,请问是哪里出问题了?
供大家参考,帮忙改进下这个程序。
谢谢了。

caowenzi 2012-11-17 16:27

回复: 关于求组合数及阶乘中大数的算法。
 
:confused:


所有时间均为北京时间。现在的时间是 14:43

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.