大数值阶乘计算函数
来源:互联网 发布:linux文件重命名命令 编辑:程序博客网 时间:2024/06/04 17:57
阶乘往往由于数值巨大而无法用一个long int或者double类型数据保存。近日无聊写了个大数值阶乘的计算函数,理论上只要内存足够,能够计算出任何数值的阶乘,但实际上100万以上的阶乘计算不管是时间消耗还是内存消耗都是极为惊人的,建议使用该函数计算100万以下的阶乘。
为了有足够的空间保存结果,用一个vector<unsigned long int>保存,每个unsigned long int保存8位结果,vector大小由结果位数决定。本程序主体主要包含两个函数,阶乘计算函数和结果显示函数,定义在Factorial.h中。
代码如下:
测试代码main.cpp:
经过测试,10万的阶乘计算时间为274489ms,即4分34秒。这个速度受电脑配置影响,这是在E5300,2G DDRII 800的硬件条件下测试出来的。
下面是测试结果图:
小数阶乘:
1000阶乘:
下面是系统计算机计算1000!的阶乘结果:
1万大数阶乘,耗时1529毫秒:
10万大数阶乘:
该函数计算阶乘速度不算很快,还有很大的改进空间。
- 大数值阶乘计算函数
- 数值计算程序大放送-特殊函数
- 计算任意数值的阶乘
- 大整数阶乘计算
- Java 大数值计算
- 计算阶乘的函数
- oracle 数值计算函数
- 计算大阶乘(值很大)
- java计算大数据阶乘
- 函数计算N的阶乘
- GreenPlum常用数值计算函数
- Hive函数编程-数值计算
- 大整数阶乘的计算 N!
- 阶乘计算升级版(大整数)
- 用数组解决数值大的数的阶乘!!
- 数值计算程序大放送-线性代数方程组
- 数值计算程序大放送-矩阵运算
- (函数题)4-8 简单阶乘计算
- Ext 绑定下拉框
- java.lang.Exception: Socket bind failed: [730048]
- 中国linux现状
- hdoj简单题目(三)
- 我与对象------一个初学者对面对对象编程思想的感悟
- 大数值阶乘计算函数
- java算法例子,平时的积累。
- 股票数据文件格式分析工具
- opgl
- 平寂之美
- Wi-Fi语音技术浅析
- 软件测试的三重境界
- 网站页面性能优化的34条黄金守则(网上到处都有了,还是要转一下)
- Linux