90! = ?
沒錯今天的題目就是這麼簡單,如果你算不出這麼大的數,那也可以告訴我後面有幾個零,以及末尾非零兩位數是多少?
【開箱】華碩 ASUS Tinker Board 3S開箱、系統安裝教學文
-
之前有開箱介紹過Tinker Board 2以及Tinker Board 2S,這次我們就來開箱最新的ASUS [...]
〈【開箱】華碩 ASUS Tinker Board 3S開箱、系統安裝教學文〉這篇文章最早發佈於《CAVEDU教育團隊技術部落格》。
15 小時前
作者已經移除這則留言。
回覆刪除算得沒錯的話,應該是20個0
刪除更正
刪除手算因數分解如下:
(2^86)(3^44)(5^20)(7^13)(11^7)(13^6)(17^5)(19^4)(23^3)(29^2)(31^2)(37^2)(41^2)(43^2)(47)(53)(59)(61)(67)(71)(73)(79)(83)(89)
手算這題,真的需要細心與耐性,20個零不正確。
刪除問題的求解,可以用各種方法,計算機求解我也不反對,如果有程式,需附上程式。
1485715964481761497309522733620825737885569961284688766942216863704985393094065876545992131370884059645617234469978112000000000000000000000
刪除來源:網路上的Code. Google 搜尋 "how to calculate large factorials in C". 演算法與小學教的直式乘法相同.
回覆刪除正解,如果用 Python 寫程式,程式碼會更簡單。如果不用程式解,你會怎樣解這題?
刪除有幾個零的計算
回覆刪除2*5*
10*12*15*
20*22*25*
30*32*35*
40*42*45*
50*52*55*
60*62*65*
70*72*75*
80*82*85*
90
共 21 個零。
人計算的方法,我想法是類似上面的計算方法,拆成比較小的數字相乘。 需要一點時間想想。
會有 21 個零是因為 25、50、75 等數值含有兩個因數 5。確實難題拆成許多小問題可以比較簡單解。
刪除除了慢慢從1乘到90以外,有其他方法?
回覆刪除如果是奇數階乘,可不可以用平方差公式簡化?
回覆刪除例:n! (n為奇數)
(1+n)/2=x (等差中項)
n!=[x-(x-1)][x-(x-2)][x-(x-3)]...(x-2)(x-1)x(x+1)(x+2)...[x+(x-3)][x+(x-2)][x+(x-1)]
=(x^2-1^2)(x^2-2^2)(x^2-3^2)....[x^2-(x-1)^2]
利用平方差解題,是一個好方法,長乘法計算可以少一半。問題是再來要如何計算下一步?
刪除另外,你的式子還要再補上 x 乘項,
n!=[x-(x-1)][x-(x-2)][x-(x-3)]...(x-2)(x-1)x(x+1)(x+2)...[x+(x-3)][x+(x-2)][x+(x-1)]
=x(x^2-1^2)(x^2-2^2)(x^2-3^2)....[x^2-(x-1)^2]
http://www.geocities.ws/goodprimes/FZFactorial.html,階乘的因數檢查可以參考這一篇。
這題應屬於高中程度以上的難題。
如果是找近似解,可以使用Stirling's formula. 但手算上面,一樣繁複: n!~sqrt(2*pi*n)*(n/e)^n。
刪除這個式子有在維基百科看到,https://zh.wikipedia.org/wiki/%E9%9A%8E%E4%B9%98
刪除說真的,日常生活中,階乘的應用不常見,不然數學家早就建快速查表,像是三角函數、對數、常態分布等
階乘的話,我目前只有在排列組合中見過。
刪除是的,排列組合有用到,謝謝補充。
刪除加分題,除了排列組合,還有那些應用有用到階乘?
泰勒展開式,Maclaurin 級數。這兩個最簡單就用在數值方法求exp(x), sin(x), cos(x)上面。
刪除二項式定理,機率統計,離散數學中會用到,另外Gamma function 是階乘的一般式。
Legendre polynomials,用在微分方程或是函數逼近,近似曲線逼近。
Bessel’s Function 中的 Jx 係數,用在微分方程。
大概想到的就這些。
謝謝行天下專業的補充,我是常看到無窮級數使用到它。
刪除查了一篇舊聞: http://4rdp.blogspot.tw/2014/07/taylor-series.html#more
刪除三角函數 "值" 的計算,除了泰勒展開式之外,還有另外一個快速地計算演算法。 CORDIC 演算法。
先簡單提一下。
謝謝補充,大略看一下,是採疊代計算快速收斂,找時間寫個程式試作一下。
刪除基本上要實作三角函數求值,泰勒展開式還是最為方便。其誤差項也非常容易知道。這裡有個 source code, IBM 的。有點複雜,但應該很容易懂。
刪除https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/ieee754/dbl-64/s_sin.c;hb=HEAD#l281
行天下謝謝你補充,通常一般工程師都是直接用別人寫好的程式庫,不會探究這些細節,只有系統開發者必須了解原理與方法才有辦法寫出這些程式。
刪除