n!

n!,最先提出階乘符號的人是克拉姆,後來經過歐姆等人的提倡而流行,直至現在仍然通用。

階乘符號發展史

簡介

階乘符號

n!=1x2x3...xn
n!=Xx(X-1)x(X-2)...x1
1751年,歐拉以大寫字母M表示m階乘 M=1x2x3...x...m
1799年,魯非尼在他出版的方程論著述中,則以小寫字母π表示m階乘,而在1813年,高斯則以Π(n)來表示n階乘。而用來表示n階乘的方法起源於英國,但仍未能確定始創人是誰。直至1827年,由於雅萊特的建議而得到流行,現在有時也會以這個符號作為階乘符號。
而最先提出階乘符號n!的人是克拉姆(1808),後來經過歐姆等人的提倡而流行,直至現在仍然通用。
當n較大時,直接計算n!變得不可能,這時可通過斯特靈(Stirling)公式計算近似算或取得大小範圍。
1751年,歐拉以大寫字母M表示m階乘 M=1.2.3.....m  
1799年,魯非尼在他出版的方程論著 述中,則以小寫字母π表示m階乘,而在 1813年,高斯則以Π(n)來表示n階乘。而 用來表示n階乘的方法起源於英國,但仍未能確定始創人是誰。直至1827年,由於 雅萊特的建議而得到流行,現在有時也會 以這個符號作為階乘符號。
而最先提出階乘符號n!的人是克拉姆 (1808),後來經過歐姆等人的提倡而流 行,直至現在仍然通用。

HDU 上與N!相關的兩個題目:

Leftmost Digit:

題意:給一個正整數N(1<=N<=1,000,000,000),輸出N^N最左邊的數字.
N=3時,3*3*3=27,最左邊的數字是2.
N=4時,4*4*4*4=256,最左邊的數字是2.
思路:N^N是一個整數,可以表示成一個小數乘以10^(k-1),即N^N=frist.xxxxx*10^(k-1).
frist.xxxxx=N^N/10^(k-1)=10^(log_10(N^N-(k-1))).對於10的整數次冪frist=1,所以當log_10(N^N-(k-1))中存在小數時,frist=(int)1*pow(10,小數部分)!
小數部分=log_10(N^N-(k-1))-(longlong)(log_10(N^N-(k-1)));
公式:frist=(int)pow(10.0,(n*log10(n)–(longlong)(n*log10(n))))!

Last non-zero Digit in N!

題意:給一個正整數N(N為大整數),輸出最右邊非零的數字.代碼:01//大整數以string的形式傳入
02intLast_nonzero_Digit_in_N(stringstr){
03intmod[20]={1,1,2,6,4,2,2,4,2,8,4,4,8,4,6,8,8,6,8,2};
04inta[1000];
05inti,c,t=1,len=str.length();
06for(i=0;i<len;i++)
07a[i]=str[len-1-i]-’0′;
08while(len){
09len-=!a[len-1];
10t=t*mod[a[1]%2*10+a[0]]%10;
11for(c=0,i=len-1;i>=0;i–)
12c=c*10+a[i],a[i]=c/5,c%=5;
13}
14returnt;
15}
階乘:英文名(factorial)
在MATLAB中,可以通過指令factorial(n)來計算n!

相關條目

代數 數學符號 絕對值符號 根號

相關詞條

相關搜尋

熱門詞條

聯絡我們