Matlab 计算大数的阶乘
http://hi.baidu.com/dreamflyman/item/11e920165596280fd0d66d9f
>> syms k;
>> kfac=sym('k!');
>> subs(kfac,k,10)
ans =
3628800
>> subs('x!',10)
ans =
3628800
其实,以上程序还可以求更大的数的阶乘,只不过即使算出来为Inf,似乎没有什么用处。
http://www.zdh1909.com/html/matlab/15832.html
MATLAB做为一个流行的数学计算工具居然不支持32位以上大数的运算,实在是匪夷所思。或许是我对基于矩阵这个概念了解不深,大数运算是MATLAB的弱项,连同数论中专门的大量计算的不支持,使人们无法放弃MATHEMATICA。MATLAB连一个计算阶乘的函数都没有么?对我来说,这毫无疑问是一种遗憾。
但我竟有幸发现了藏在MATLAB里的一个秘密,利用limit('x+5525...6816 mod 105...459',x,0),轻松的计算了4760位数与2332位数的大数的模(不足一秒!!)这说明了什么呢?同样的方法,我顺利的实现了不少计算,下面来看看这些激动人心的尝试把!
>>limit('x+isprime(10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000267)',x,0)
ans =
true
>> limit('x+2^(2^10)+1',x,0)
ans =
179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137217
>> limit('x+2^111 mod 123',x,0)
ans =
80
>> limit('x+66!',x,0)
ans =
544344939077443064003729240247842752644293064388798874532860126869671081148416000000000000000
200000的阶乘约半分钟计算完毕,但运算结果的输出几乎要了Matlab的命
我算领教了Matlab强大的功能,我原以为Mathematic是不可替代的,现在看来,除了显示方式与计算方式的不同,Matlab始终是完美的。。。
这些只是初步的尝试,我的解释是:据说MATLAB的符号运算是基于MAPLE核心的,可能在继承符号运算的同时也继承了这些基本的运算能力。这只是可能的解释,不过,这么看MATLAB就更加可爱了,如果某一天MATLAB能够调用MATHEMATICA的函数就更可爱了:)
是否这种方法能够实现全部的MAPLE的基本运算还有待考证,不过由此也看出了MATLAB的博大,它的开放性!
如果只需要大致的值,取log10,
计算出result=log10(1000!)=log10(1)+log10(2)+...log10(1000)
然后求10^result=10^result的小数部分*10^result的整数部分
用x^1000的1000阶导数求的
x=[1:1000];
prod(x)
prod
factorial
gamma(n+1) = n! = prod(1:n)
Matlab 计算大数的阶乘的更多相关文章
- WEB前端面试真题 - 2000!大数的阶乘如何计算?
HTML5学堂-码匠:求某个数字的阶乘,很难吗?看上去这道题异常简单,却不曾想里面暗藏杀机,让不少前端面试的英雄好汉折戟沉沙. 面试真题题目 如何求"大数"的阶乘(如1000的阶乘 ...
- C语言求大数的阶乘
我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,该如何计算? 当一个数很大时,利用平常的方法是求不出来它的阶乘的,因为数据超出了范围.因此我们要用数组来求一个大数的阶乘,用数组的每位表示结果的 ...
- 35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n); (2)编写一个类:ClassA来实现接口InterfaceA,实现int method(int n)接口方 法时,要求计算1到n的和; (3)编写另一个类:ClassB来实现接口InterfaceA,实现int method(int n)接口 方法时,要求计算n的阶乘(n
35.按要求编写Java程序: (1)编写一个接口:InterfaceA,只含有一个方法int method(int n): (2)编写一个类:ClassA来实现接口InterfaceA,实现in ...
- N的阶乘的长度 V2(斯特林近似) 求 某个大数的阶乘的位数 .
求某个大数的阶乘的位数 . 得到的值 需要 +1 得到真正的位数 斯特林公式在理论和应用上都具有重要的价值,对于概率论的发展也有着重大的意义.在数学分析中,大多都是利用Г函数.级数和含参变量的积分等 ...
- 计算n的阶乘(n!)末尾0的个数
题目: 给定一个正整数n,请计算n的阶乘n!末尾所含有“0”的个数. 举例: 5!=120,其末尾所含有的“0”的个数为1: 10!= 3628800,其末尾所含有的“0”的个数为2: 20!= 24 ...
- shell脚本,通过一个shell程序计算n的阶乘。
[root@localhost ~]# cat jiechen.sh #!/bin/bash #设计一个shell程序计算n的阶乘,要求: #.从命令行接收参数n; #.在程序开始后立即判断n的合法性 ...
- 2018/7/31-zznu-oj-问题 B: N! 普拉斯 -【求大数的阶乘-ll存不下-然后取尾零的个数输出-暴力模拟】
问题 B: N! 普拉斯 时间限制: 1 Sec 内存限制: 128 MB提交: 114 解决: 35[提交] [状态] [讨论版] [命题人:admin] 题目描述 在处理阶乘时也需要借助计算器 ...
- Matlab计算矩阵和函数梯度
一.差分与微分 我自己的理解. 二.求解 2.1 矩阵 这就是matlab的计算结果.太小的话放大些: c = 4 5 9 7 2 1 5 2 6 >> [x,y]=gradient(c) ...
- Matlab计算矩阵间距离
夜深人静时分,宿舍就我自己,只有蚊子陪伴着我,我慢慢码下这段文字............ 感觉知识结构不完善:上学期看论文,发现类间离散度矩阵和类内离散度矩阵,然后百度,找不到,现在学模式识别,见了, ...
随机推荐
- js取配置文件内容
使用 jQuery.i18n.properties 实现 Web 前端的国际化 http://www.ibm.com/developerworks/cn/web/1305_hezj_jqueryi18 ...
- 用中文把玩Google开源的Deep-Learning项目word2vec
google最近新开放出word2vec项目,该项目使用deep-learning技术将term表示为向量,由此计算term之间的相似度,对term聚类等,该项目也支持phrase的自动识别,以及与t ...
- Linked List Cycle II
Given a linked list, return the node where the cycle begins. If there is no cycle, return null. Note ...
- cocos2d-html5版日历组件
根据一as3版本给改编成成了js版的.as3版本的地址: http://download.csdn.net/detail/fengye513/2722289 胜利项目做的差不多了,由于项目用的是c+ ...
- ORA-12545: 因目标主机或对象不存在, 连接失败
ORA-12545: 因目标主机或对象不存在, 连接失败 1. 问题描述 XP系统下同时安装了AX1应用程序和升级版AX2,连接同一个在本机Oracle客户端上配置的连接实例,其中AX2显示链接成功, ...
- Queue及Stack
Queue 她是一个接口,有多冢实现方式(LinkedList.ArrayDeque等) 类别 方法 入队 add.offer(优先级高) 出队 remove.poll 查询 element.peek ...
- uva562 Dividing coins 01背包
link:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- 放课后的约定 by:S_H_Y
题目背景 十年.十年前.天空的蔚蓝,云彩的舒软.我,怎么会认识你.洁白的,洁白的,十年前.我无法忘却.终究是小时候的约定.记忆被困在冻土里,有时我不认识那天的我.难道一切,都锁在心里面了吗? 题目描述 ...
- HDU 1010 Tempter of the Bone --- DFS
HDU 1010 题目大意:给定你起点S,和终点D,X为墙不可走,问你是否能在 T 时刻恰好到达终点D. 参考: 奇偶剪枝 奇偶剪枝简单解释: 在一个只能往X.Y方向走的方格上,从起点到终点的最短步数 ...
- jsonp跨域js
http://www.cnblogs.com/yuzhongwusan/archive/2012/12/11/2812849.html window.opener用法 http://www.cnblo ...