阶乘应用于组合数的计算。大整数的阶乘的计算,依赖于大整数的任意精度的高效率的乘法。大整数乘法依赖于离散性的傅立叶变换。它的算法复杂度是NlogN. 按照定义计算的乘法,算法复杂度是N*N。

阶乘部分的javascrpt 测试代码如下:function test2()
{ var d=document.getElementById("txt1");
   var result=[1];
    for(var i=1;i<=d.innerText;i++)
     {result=mul(result,[i]);}
  document.getElementById("txt2").innerText=result;
}

大整数的乘法的代码如下:

// 数据的任意大整数的乘法 数组中每个元素代表六位的十进制数
// mul([483647,2147],[483647,2147]); ---> [420609,14132,611686,4]
// 数据的低位放在数组的第0位。
function mul(arr1,arr2)
{
 var temp=initArray([arr1.length,arr1.length+arr2.length],function(a,b){return 0;})
var  sum=initArray([arr1.length+arr2.length],function(a){return 0;})

for(var i=0;i<arr1.length;i++)
           {
               for(j=0;j<arr2.length;j++)
                  {
                     temp[i][i+j]=arr1[i]*arr2[j];
                      sum[i+j]+=temp[i][i+j];
                  }
           }
      for(var i=0;i<sum.length-1;i++)
      {
            sum[i+1]+=parseInt(sum[i]/1000000,10);
            sum[i]=sum[i]%1000000;
      }
   return sum;
}

计算结果如下:

1000!=
0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,472000,27753,410970,777939,983835,105933,153690,909004,243416,624271,903700,560855,524230,996372,840096,358081,230135,160829,741785,404595,63677,582401,742173,94254,748998,941872,156805,399457,182154,510640,942028,889086,309120,379029,461260,244516,871701,450994,956121,826280,909959,863396,753848,928162,87968,498825,630569,207573,344220,765752,757586,822248,196742,554277,389863,2597,217095,83506,321139,789864,864602,288269,433278,73152,569099,77644,153483,694290,51399,828015,123344,158014,118520,281434,940694,337218,649875,531926,137428,143970,649353,24186,123125,382291,839657,642614,372388,296819,908519,798722,124960,855646,387121,68884,641921,845901,171229,311021,729918,811889,860040,897017,356193,799702,485061,566526,886018,339901,765904,222221,899490,640259,310446,140767,814900,927383,976461,865688,230483,387538,862377,422845,962715,413346,774011,228749,559654,958720,565513,273497,136493,929023,190620,470935,885252,402821,245014,465657,432438,84024,103790,682573,460594,631797,206344,527224,435694,600301,138558,180612,93988,552036,131156,465955,150279,788386,831860,999612,660176,43367,993266,344825,164348,652208,178889,391858,75781,272807,652682,769958,66526,226458,327168,125458,482590,897968,61690,286933,143974,304226,170483,540265,284225,751516,783520,260158,906117,36786,465832,617210,153181,24324,570299,302955,746628,956581,992642,361745,12187,414282,195444,988005,622289,31274,903754,779911,168909,762179,671616,263243,964518,889893,153780,208160,82439,911234,697562,146674,862967,506276,476088,838971,960223,892187,461062,865541,257223,194545,178114,19393,907788,921510,968175,702103,331611,535147,15888,625200,34352,926849,127761,615307,137837,280750,399736,139450,556602,723355,319101,959953,487984,385442,198901,353408,160765,244945,679646,421889,847728,616475,950537,602900,708975,984046,836546,553615,116811,333186,80821,832572,221566,909342,975419,114964,928705,896359,761244,213092,264810,398281,153691,365024,170164,635868,704784,827977,27341,683151,261,780208,412508,236131,448426,169132,320767,478589,312025,871348,609675,168747,304216,801357,36976,558611,281231,844403,431392,297308,90878,201928,586593,524221,379534,136085,731746,374559,867838,808126,588249,853719,379143,291207,668820,797396,611667,646576,553428,349347,417474,114262,557409,463075,323958,513185,735432,835955,632889,12476,849977,783647,45825,119181,487337,437886,393887,291056,646496,278094,601418,497043,975462,120874,995276,505950,519779,188732,627727,918823,73759,504087,997424,944590,829669,901323,808558,872994,631666,196058,610197,479988,404800,486969,44208,20592,398629,938512,910429,543799,714632,864210,719374,3985,433923,543702,93773,260077,402387

编程示例:计算1000的阶乘相关推荐

  1. Java计算1000的阶乘

    计算1000的阶乘 1.使用Java自带类BigInteger import java.math.BigInteger;public class no50_duplicate {public stat ...

  2. 递归算法示例——计算N的阶乘

    递归算法,也就是调用方法自身.阶乘算法,N的阶乘为N*(N-1)*...*2*1,1的阶乘是1. 下面是示例的代码: package com.cqit.edu.test; import java.ut ...

  3. matlab计算阶乘,紧急求助:怎么用matlab计算1000的阶乘啊?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我又试了一下,第一行错了, 应该是:x=sym(1) 祝好运. 结果是: 4023872600770937735437024339230039857193 ...

  4. matlab里面阶乘怎么计算器,紧急求助:怎么用matlab计算1000的阶乘啊?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 我又试了一下,第一行错了, 应该是:x=sym(1) 祝好运. 结果是: 4023872600770937735437024339230039857193 ...

  5. 编程示例:计算组合数c(2000,1000)

    编程示例:计算组合数c(2000,1000) 组合数的计算公式是 c(m,n)=m!/n!/(m-n)! 所以它的计算是依赖于阶乘的计算,当n>21时n!的结果值超出了编程语言的整数表示范围的最 ...

  6. 什么是阶乘?如何通过示例计算阶乘

    阶乘是您这样编写的数学运算:n!. 它表示 1 和 n 之间所有数字的乘积. 因此,如果您有3!,例如,您将计算 3 x 2 x 1(其中 = 6).让我们看看它是如何与更多示例一起工作的. 阶乘的定 ...

  7. PTA 基础编程题目集 6-8 简单阶乘计算 C语言

    PTA 基础编程题目集 6-8 简单阶乘计算 C语言 本题要求实现一个计算非负整数阶乘的简单函数. 函数接口定义: int Factorial( const int N ); 其中N是用户传入的参数, ...

  8. 求1000的阶乘c语言编程,用C语言编写程序,求出1000的阶乘?

    给你个通用的.运行后输入1000. #define M 20000 /* 最大结果位数,DOS能访问的内存有限,最好不要超过 30000 位*/ #define N (M+5) main() { in ...

  9. 编程示例:表格程序开发的EXCEL方法,以二维码的数据容量计算为例

    编程示例:表格程序开发的EXCEL方法,以二维码的数据容量计算为例 在二维码的计算中,它的第一个表格是以版本号为参数,计算该版本下的数据容量. 表1如下: 在EXCEL中以公式的形式生成与上图一致的表 ...

最新文章

  1. Hutool,一个贼好用的 Java 工具类库,用过都说好~
  2. train loss与test loss结果分析
  3. python 删除文件-python 删除文件和读取文件
  4. CCF201803-1 跳一跳(序列处理)
  5. Imagemagick常用指令
  6. gulp复制整个文件夹或文件到指定目录(包括拷贝单个文件)
  7. Graph Search就是语义搜索
  8. 【超详细】遍历Windows进程模块
  9. 【转】Win10系统创建WiFi热点的两种方法
  10. 信息学奥赛一本通 2039:【例5.6】冒泡排序
  11. 第三:Pytest框架之命令行参数(一)
  12. 【超直白】三分钟创建一个小程序
  13. java 解析cron_Quartz 源码解析(六) —— 解析Cron表达式
  14. 教你几招提高自媒体文章原创度
  15. 数据安全法整理学习笔记
  16. c++实验6-【项目3:矩阵求和】
  17. 流媒体直播系统由哪几部分组成?
  18. CVE-2017-8570漏洞利用
  19. 快速上手五大技巧!自媒体新人创作攻略,想要通过拍视频赚钱
  20. unsteady_rel_perm案例学习

热门文章

  1. 中山纪中集训Day2又是测试(划水)
  2. 炒股的最高境界:炒股就是炒心态,耐心看完受益匪浅!
  3. 生成HTML静态对网店系统的影响
  4. SEO优化对商城系统的重要性
  5. 商务人士邮箱推荐?高大上邮箱来了!
  6. 【Python机器学习】层次聚类AGNES、二分K-Means算法的讲解及实战演示(图文解释 附源码)
  7. 编程入门软件安装汇总
  8. 【介绍】开源的WAF(应用防火墙)软件有哪些?
  9. 虚拟机 VMware Workstation 中使用大白菜U盘启动安装操作系统方法
  10. linux里挂载(mount)和取消挂载(umount)命令的使用