(2n-3)!算不算阶乘 java啊?阶乘 java是不是...

阶乘函数与有限和分法_图文_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
阶乘函数与有限和分法
上传于||暂无简介
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩8页未读,继续阅读
你可能喜欢【教程】怎样算阶乘(一)—— Mathematica 是个计算器 | Mathematica小组 | 果壳网 科技有意思
7816人加入此小组
(真希望果壳能支持Markdown……)我在开始学习一门新的编程语言的时候,往往是从把它当作计算器开始的。这是因为常见的那些语言,不管语法差别有多大,四则运算的写法往往是差不多的。Mathematica 当然也是如此。我想,大多数人学习 Mathematica 的时候,应该也和我一样是从把它当作计算器开始的。不同的是,有些人会继续学下去,深入了解 Mathematica 编程等方面的功能,最终成为大神;而另一些人,对 Mathematica 的学习就仅限于此,便敢用“仅限于此”来评价 Mathematica 了。不过,我这个教程还是从把 Mathematica 当作计算器开始吧。一切内容以 Mathematica 9.0 为准。别的版本可能会有一些不同。从算术开始===========如果手里拿着一个计算器,你会怎样用它来计算100的阶乘?根据阶乘的定义,100的阶乘当然是 1*2*3*4*…*100。Mathematica 中的四则运算和一般的计算器也没什么不同,用 * 来代表乘号, / 来代表除号。假设你已经安装好并打开了Mathematica,于是只需要输入:1*2*3*4*5*6*7*8*9*10*11*12*13*14*15*16*17*18*19*20*21*22*23*24*25*26*27*28*29*30*31*32*33*34*35*36*37*38*39*40*41*42*43*44*45*46*47*48*49*50*51*52*53*54*55*56*57*58*59*60*61*62*63*64*65*66*67*68*69*70*71*72*73*74*75*76*77*78*79*80*81*82*83*84*85*86*87*88*89*90*91*92*93*94*95*96*97*98*99*100然后按【Shift】+【Enter】,结果就出来了:不过,这样也太麻烦了吧……在 Mathematica 中有个好处:可以用空格来代替乘号。空格键总比 * 容易按对吧?于是就有:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100如果空格两边都是数字,那么Mathematica在显示的时候还会帮你补上一个漂亮的乘号(但复制出来还是空格):不过,这好像还是太麻烦了,要敲291次键盘呢。现在的科学计算器不是一般都有一个阶乘按钮的吗?算阶乘直接输入 100! 就行了。当然,在 Mathematica 里边也能这样:事实上这是用 Mathematica 计算阶乘的最简单的办法了。计算机代数系统=============不过,好像有哪里不对……计算器算出来的结果不应该是,比如说,9.7(这是Google搜 100! 算出来的结果)吗?这是因为 Mathematica 不是一个普通的计算器,而是一个 CAS(Computer Algerba System,计算机代数系统)。一般来说,数学家,尤其是代数学家,才不会管一个数(的数量级)有多大。对他们来说,重要的是这个数是不是整数,是不是素数,有哪些素因子……因此往往需要把一个整数完完整整地写出来。这样,进行高精度的整数计算就成了 CAS 的基本素养。不仅是 Mathematica ,别的一些 CAS ,比如说、、、等都会给出 00 这样的结果。同样道理,在 CAS 中整数除整数的结果也是分数,而不是小数。比如说输入1/2 ,它就会原样输出 1/2 。但用 Mathematica 的也有工程师。对他们来说,数值的大小十分重要。不过不要紧,只要在你的输入后面加上 //N (注意 Mathematica 是严格区分大小写的), Mathematica 也能给出适合于工程师们的结果:CAS 既然叫“计算机代数系统”,会 的自然不仅仅是高精度计算。它们还能用符号代替数来进行各种算术的把戏,比如说会告诉你 a + a 的结果是2a 。甚至还有符号的阶乘:不过 n!实在没有什么好算的,于是它就原样输出了。函数和它的马甲=============一般科学计算器除了能计算加减乘除,还能计算一些数学函数,比如说指数对数、三角函数、双曲函数,还有——阶乘。我们都知道,阶乘虽然把自己打扮成一个感叹号,其实是一个定义在非负整数集上的函数。在 Mathematica 中也是这样。那个感叹号只是阶乘的马甲而已,它真正的名字叫做Factorial。 不过, Mathematica 中函数的写法和一般的科学计算器里,以及数学中的常见写法不一样。它用的是方括号,而不是圆括号;也就是说不是写成 f(x) ,而是写成f[x]。于是, 100! 其实只是 Factorial[100] 的简略的写法。在输入后面加上 //FullForm 就能让输出现出原形。不过 00 这样的整数没什么原形好现的,我们还是来看看 n! 吧:要注意的是, Mathematica 自带的函数首字母都是大写。比如说指数函数写成 Exp ,对数函数写成 Log (注意数学中说到对数函数总是默认以 e 为底;另外, Mathematica 中这个常数 e 也要大写,也就是说,写成 E)。因此,阶乘也能这样算:Exp[Log[1] + Log[2] + Log[3] + Log[4] + Log[5] + Log[6] + Log[7] + Log[8] + Log[9] + Log[10] + Log[11] + Log[12] + Log[13] + Log[14] + Log[15] + Log[16] + Log[17] + Log[18] + Log[19] + Log[20] + Log[21] + Log[22] + Log[23] + Log[24] + Log[25] + Log[26] + Log[27] + Log[28] + Log[29] + Log[30] + Log[31] + Log[32] + Log[33] + Log[34] + Log[35] + Log[36] + Log[37] + Log[38] + Log[39] + Log[40] + Log[41] + Log[42] + Log[43] + Log[44] + Log[45] + Log[46] + Log[47] + Log[48] + Log[49] + Log[50] + Log[51] + Log[52] + Log[53] + Log[54] + Log[55] + Log[56] + Log[57] + Log[58] + Log[59] + Log[60] + Log[61] + Log[62] + Log[63] + Log[64] + Log[65] + Log[66] + Log[67] + Log[68] + Log[69] + Log[70] + Log[71] + Log[72] + Log[73] + Log[74] + Log[75] + Log[76] + Log[77] + Log[78] + Log[79] + Log[80] + Log[81] + Log[82] + Log[83] + Log[84] + Log[85] + Log[86] + Log[87] + Log[88] + Log[89] + Log[90] + Log[91] + Log[92] + Log[93] + Log[94] + Log[95] + Log[96] + Log[97] + Log[98] + Log[99] + Log[100]还有一类我们每天都会跟它打交道,却没有意识到它是函数的函数。这就是加减乘除幂。其实,想想就会明白,所谓二元运算,只不过就是二元函数而已。用 FullForm 这个照妖镜一照,就会发现: + 其实是 Plus 的马甲, * 其实是 Times 的马甲, ^ 其实是 Power 的马甲。比较出人意料的是 - 和 / 。我就不说了,大家自己试试 a - b // FullForm 和a/b // FullForm 吧。对接触过的概念的人来说,这其实并不十分奇怪。于是本教程给出的第一种计算阶乘的办法其实可以写成这样:Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[Times[1,2],3],4],5],6],7],8],9],10],11],12],13],14],15],16],17],18],19],20],21],22],23],24],25],26],27],28],29],30],31],32],33],34],35],36],37],38],39],40],41],42],43],44],45],46],47],48],49],50],51],52],53],54],55],56],57],58],59],60],61],62],63],64],65],66],67],68],69],70],71],72],73],74],75],76],77],78],79],80],81],82],83],84],85],86],87],88],89],90],91],92],93],94],95],96],97],98],99],100](太长了,屏幕不够大,所以不截图了。)但 Mathematica 充分利用了乘法结合律这个设定,上面这行长长的代码可以写成这样:Times[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100]这里, Times 就不是一个二元函数,而是一个百元函数了。这里还可以深入说很多东西,但再说下去就超出“ Mathematica 是个计算器”的范围了。于是还是以后再介绍吧。怎样看帮助===========Mathematica 自带的函数特别多,这个教程里没法一一详细讲解。因此学会看帮助非常重要。看帮助的第一个办法是输入 ? 加上函数名称,然后按【Shift】+【Enter】:有时,如果这个函数有马甲的话,只需要输入 ? 加上那个马甲就行了:有两个函数都披着 ! 这个马甲, Mathematica 会把它们列出来供你选择。只需要点前面那个 Factorial , Mathematica 就会给出 Factorial 的帮助。如果记不住函数的全名,还可以用通配符 * :另一种查看帮助的方式是输入函数名称(马甲不行)或者把光标移到之前输入的函数名称处,按 【F1】 ,就会进入非常详细的帮助页面:还可以。内容和 Mathematica 自带的帮助是完全一样的,但用的是中文(只要你的浏览器的默认语言是中文)。没事翻翻帮助会对学习 Mathematica 有很大的帮助。来点微积分===========有些高级的科学计算器还能算微积分。 Mathematica (以及其它很多 CAS )当然也能。在说微积分之前,先说一下级数与乘积吧。 n! 不就是吗?在 Mathematica 中也可以这样算:这个包含乘积符号的式子可以用输入面板输入(如果没看到输入面板,点菜单中的 Palletes -& Others -& Basic Math Input 中文版大概是 面板 -& 其它 -& 基本数学输入 ),也可以依次在键盘敲下:【Esc】 p r o d 【Esc】 【Ctrl】+【-】 i = 1 【Ctrl】+【5】 1 0 0 【→】 i还可以直接从这里复制:\!\(\*SubsuperscriptBox[\(\[Product]\), \(i = 1\), \(100\)]i\)这个乘积符号看起来好看,输入却有点麻烦。 它其实只是 Product 的马甲而已:Product[i, {i, 1, 100}]Mathematica 很聪明。它不仅会算数字的乘积,还会算符号的乘积,甚至无穷乘积。这里只举一个符号乘积的小例子:\!\(\*SubsuperscriptBox[\(\[Product]\), \(i = 1\), \(n\)]i\)求和与乘积差不多,也是直接用面板里给出的求和符号。这个符号也只是 Sum 的马甲而已。详细的介绍可以参看 Sum 的帮助。然后是积分。我们知道(即使学微积分时没学到,学概率论时也应该听说过),有一个和阶乘关系密切的特殊函数,叫做Γ函数。它的定义是。而且在 x 是正整数的时候,有 Γ(x)=(x-1)! 。于是我们就可以用积分来算阶乘了:\!\(\*SubsuperscriptBox[\(\[Integral]\), \(0\), \(\[Infinity]\)]\(\*SuperscriptBox[\(t\), \(100\)] \*SuperscriptBox[\(E\), \(-t\)] \[DifferentialD]t\)\)(幂不仅可以写成 ^ 或者 Power ,还可以写成上标。输入上标可以用输入面板,也可以按 【Ctrl】+6 。∞ 符号可以从面板输入,也可以依次按【Esc】 inf 【Esc】 ,还可以输入 \[Infinity] 。)毫无意外地,积分号也只是 Integrate 的马甲:Integrate[t^100 E^-t, {t, 0, Infinity}]当然, Mathematica 中也有 Gamma 函数,直接用 Gamma[100+1]就能计算100的阶乘了:然后是导数。我们知道 x^n 对 x 求 n 次导数之后就可以得到 n! 。于是,我们又有了一种计算阶乘的办法:(实在长的太离谱,我就不把代码贴出来了。)一般算导数都不会使用面板上的这个符号,因为它实在太麻烦了。它只是 D 的马甲。 D 只有一个字母,用起来比 \[PartialD] 方便多了。D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[D[x^100,x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x],x](太长了,屏幕不够大,所以不截图了。)更重要的是, D 能直接计算高阶导数: D[x^100, {x, 100}]更多细节大家还是自己看帮助吧。(只是讲讲加减乘除微积分,就罗哩罗嗦地讲了这么多,而且讲得很乱……下面一部分我尽量简略一点。)
+ 加入我的果篮
建议在第一篇教程里面就穿插入四种括号的用法
科幻迷,天文爱好者,地质学研究生
当发现输出的结果不太合适的时候,我一般都习惯费老大劲在最外面加上N[ ]……
能源工程硕士,油藏工程师
我还以为这个帖子会讲瓦利斯公式之类的低端内容,进来一看原来是matica组
点赞!幸苦
引用 的话:当发现输出的结果不太合适的时候,我一般都习惯费老大劲在最外面加上N[ ]……重新输入%//N即可。
请问如何看函数的属性?总是纠结一个函数有没有Listable, 还不知道去哪里看。
引用 的话:请问如何看函数的属性?总是纠结一个函数有没有Listable, 还不知道去哪里看。Attributes[函数名]或者??函数名 就定义、选项、属性什么的都出来了。
大赞!居然能从简单的阶乘讲出那么多东西,好多我之前不知道的,学习了以及那几次长达几百位的输入……LZ辛苦了
引用 的话:大赞!居然能从简单的阶乘讲出那么多东西,好多我之前不知道的,学习了以及那几次长达几百位的输入……LZ辛苦了不需要真的输入几百次的啊,比如执行下面的代码然后就知道了"" && Riffle[Array[ToString, 100], "*"]Product[Defer[#] &, {i, 100}]
文字游戏小组管理员
这大概就是传说中的"教你怎么骗稿费"吧..
(C)2016果壳网&&&&&京ICP备号-2&&&&&关于阶乘的数学题,求高手…_大化高中吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:5,294贴子:
关于阶乘的数学题,求高手…收藏
n怎么求……求解释……上课木有认真听…
高一小屁伤不起 请问这是什么~
课本98页上 套公式
啦啦啦啦…无压力
得2n(2n-1)(2n-2)=10n(n-1)(n-2)一元二次不会解问初中老师
噢 有公式~ 没学到.
最后得(n-1)(n-8)=0因为n大于等于3(为什么看课本),所以n=8
解释完了,要粉要给好评哟 亲
同学我什么看不懂啊,我低调点说数学还是懂一点的,可我就是看不懂你在表达什么
20年前的ps游戏全新复刻驾临pc端
汗…………我写成2n(2n-1)(2n-2)(2n-3)=10n(n-1)(n-2)(n-3)纠结了好久……
妹崽,2n也算一项。这题我都会><你上课好好听阿!虽然我也没有听过…不过练习做多了就知道点了…
O(∩_∩)O都是有才人
课本有公式
蜀孰帮我补数学
我数学不好
物理肯定好 正好我很少物理超过30
我连数、学上到哪都不知道
史哥v5牛逼丫您,你是不是有门路啊?感谢您让我省去了5分钟
这个还简单点后面的伤不起
高一小屁孩路过 我真心看不懂
妹妹你神算了么…这题考试居然刚好有…
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或证明:2N的阶乘除以2的N次成以N的阶乘=1.3.5.7.(2n-1)
凹凸曼tusN
答:(2n)!=1*2*3*...*(2n-1)*2n=1*3*5*...*(2n-1)*2*4*6*...*2n=1*3*5*...*(2n-1)*2^n*(1*2*3*..*n)=1*3*5*...*(2n-1)*2^n*n!所以(2n)!/(2^n*n!)=1*3*5*...*(2n-1)*2^n*n!/(2^n*n!)=1*3*5*...*(2n-1)
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 阶乘 java 的文章

 

随机推荐