在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 4019|回复: 8

怎么计算1000的阶乘

[复制链接]
发表于 2007-12-4 20:57:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
本帖最后由 eecsseudl 于 2013-4-29 10:08 编辑

各位大虾们,偶一直有个问题不能解决。
计算1000的阶乘。因为1000的阶乘非常大,直接计算没有结果。
想通过用向量将每一位存储起来,可以显示,或者用乘法器原理,但是我只能想到理论,具体程序写不出来。
大虾们,帮帮忙哦,谢了哦。

[ 本帖最后由 slyhiha 于 2007-12-4 21:01 编辑 ]







发表于 2007-12-6 02:55:41 | 显示全部楼层
用服务器去算应该有结果吧,我们 实验室就有集群系统.
 楼主| 发表于 2007-12-6 20:34:11 | 显示全部楼层
谢谢了,o(∩_∩)o...,程序我也写出来了。
还是谢谢啦
发表于 2007-12-7 00:55:34 | 显示全部楼层
强人啊,我还不知道怎么利用乘法器的原理呢.
发表于 2008-1-11 20:52:24 | 显示全部楼层
hehe,用Maple或Mathematica试试
 楼主| 发表于 2008-2-17 16:41:12 | 显示全部楼层

这个程序可以算出结果

function JC(n)
n=1000;
A=1;
q=1;
for i=1:1:n
    tmp=i;
    p=0;
    z=0;
    while tmp>0
        p=p+1;
        B(p)=tmp-fix(tmp/10)*10;
        tmp=fix(tmp/10);
    end
    bb=zeros(1,p);
    for ii=1:1:p
       bb(p+1-ii)=B(ii);
    end
    for jj=1:1:p
        B(jj)=bb(jj);
    end
    H=zeros(p,p+q-1);
    for a=1:1:p
        for b=1:1:q
            H(a,a+b-1)=B(a).*A(b);
        end
    end
    D=zeros(1,p+q-1);
    for c=1:1:p+q-1
        for d=1:1:p
            D(c)=D(c)+H(d,c);
        end
    end
    E(p+q-1)=D(p+q-1);
    for w=p+q-2:-1:1
        E(w)=D(w)+fix(E(w+1)/10);
    end
    A(1)=E(1);
    for x=2:1:p+q-1
        A(x)=E(x)-fix(E(x)/10)*10;
    end
      r=length(A)-1;
    while A(1)>0
        z=z+1;
        F(z)=A(1)-fix(A(1)/10)*10;
        A(1)=fix(A(1)/10);
    end
    G=zeros(1,z+r);
    for y=z+1:1:z+r
        G(y)=A(y-z+1);
    end
    for v=1:1:z
        G(v)=F(z-v+1);
    end
    for s=1:1:z+r
        A(s)=G(s);
    end
    q=z+r;
end
d=0;
for i=q:-1:1
    if A(i)==0
        d=d+1;
    else
        break;
    end
end
A
q
d(其中开始的n可以为任意用来计算任意位阶乘,A是结果,q是结果的位数,d是最后有多少位零)
发表于 2008-3-25 15:51:22 | 显示全部楼层
这种程序都写出来了,真牛!
发表于 2008-4-14 22:48:56 | 显示全部楼层

good!good!good!

good!good!good!good!good!good!
发表于 2008-4-16 22:06:51 | 显示全部楼层
很牛的牛人
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-6 02:15 , Processed in 0.033654 second(s), 11 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表