HDU-1018-Big Number( 這段數學推導我給滿分! && 然而並不想用斯特林公式! )
下面這段數學推理,是大牛xiaonian分析出來。不得不承認,他的分析很不錯。 Posted by xiaonian at 2013-05-04 14:07:10 on Problem 1018
/**************************************************** 這題要求n的階乘的位數,如果n較大時,n的階乘必將是一個 很大的數,題中說1<=n<10000000,當n=10000000時可以說n 的階乘將是一個非常巨大的數字,對於處理大數的問題,我 們一般用字串,這題當n取最大值時,就是一千萬個數字相 乘的積,太大了,就算儲存在字串中都有一點困難,而且 一千萬個數字相乘是會涉及到大數的乘法,大數的乘法是比較 耗時的,就算計算出結果一般也會超時。這讓我們不得不拋棄 這種直接的方法。 再想一下,這題是要求n的階乘的位數,而n的階乘是n個數的 乘積,那麼要是我們能把這個問題分解就好了。 在這之前,我們必須要知道一個知識,任意一個正整數a的位數 等於(int)log10(a) + 1;為什麼呢?下面給大家推導一下: 對於任意一個給定的正整數a, 假設10^(x-1)<=a<10^x,那麼顯然a的位數為x位, 又因為 log10(10^(x-1))<=log10(a)<(log10(10^x)) 即x-1<=log10(a)<x 則(int)log10(a)=x-1, 即(int)log10(a)+1=x 即a的位數是(int)log10(a)+1 我們知道了一個正整數a的位數等於(int)log10(a) + 1, 現在來求n的階乘的位數: 假設A=n!=1*2*3*......*n,那麼我們要求的就是 (int)log10(A)+1,而: log10(A)=log10(1*2*3*......n) (根據log10(a*b) = log10(a) + log10(b)有) =log10(1)+log10(2)+log10(3)+......+log10(n) 現在我們終於找到方法,問題解決了,我們將求n的階乘的位 數分解成了求n個數對10取對數的和,並且對於其中任意一個數, 都在正常的數字範圍之類。 總結一下:n的階乘的位數等於 (int)(log10(1)+log10(2)+log10(3)+......+log10(n)) + 1 根據這個思路我們很容易寫出程式 ****************************************************/
相關推薦
HDU-1018-Big Number( 這段數學推導我給滿分! && 然而並不想用斯特林公式! )
下面這段數學推理,是大牛xiaonian分析出來。不得不承認,他的分析很不錯。 Posted by xiaonian at 2013-05-04 14:07:10 on Problem 1018 /****************************************************
HDU 1018 Big Number (log函數求數的位數)
required iostream weight n! cst pos cati man 1.2 Problem Description In many applications very large integers numbers are required. S
HDU 1018 Big Number
題意 spa out color sum fine sqrt ber 對數 Big Number 題意:算n!的位數。 題解:對於一個數來算位數我們一般都是用while去進行計算,但是n!這個數太大了,我們做不到先算出來在去用while算位數。 while(a){
HDU 1018 Big Number
Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 43560 Accepted Sub
Big Number HDU - 1018 (斯特林公式)
Big Number HDU - 1018 分類:斯特林公式 題意:給你n問n!中有多少位數。 知識一:n的位數為(int)log10(n) +1. 知識二:斯特林公式:n!=sqrt(2*pi*n)(n/e)^n。 此題可以暴力也可以利用公式求解。公式求解為log10(n
斯特林公式-Stirling公式(取N階乘近似值)-HDU1018-Big Number 牛客網NowCoder 2018年全國多校算法寒假訓練營練習比賽(第三場)A.不凡的夫夫
subject color content coder -m ria 一點 練習 java 最近一堆題目要補,一直鹹魚,補了一堆水題都沒必要寫題解。備忘一下這個公式。 Stirling公式的意義在於:當n足夠大時,n!計算起來十分困難,雖然有很多關於n!的等式,但並不能很
bzoj3000 Big Number 斯特林公式
Description 給你兩個整數N和K,要求你輸出N!的K進位制的位數。 對於100%的資料,有2≤N≤2^31, 2≤K≤200,資料組數T≤200。 Solution 顯然答案就是logk
hdu1018 Big Number(斯特林公式)
題意:求一個數階乘的位數。 思路:求一個數的位數,普通的for對這麼大的數先求出來是不現實的,所以就有了下面的公式: n的位數 = (int)log10(n)+1。 那n!的位數就是(int)l
卡塔蘭(Catalan Number)數和斯特林公式(Stirling Approximation)分析
1.卡塔蘭數 設第n個卡塔蘭數為h(n)h(n)h(n),h(n)h(n)h(n)滿足h(n)=∑i=1nh(n−i)∗h(i−1)(h(0)=1,h(1)=1)h(n)=\sum^{n}_{i=1}{h(n-i)*h(i-1)}(h(0)=1,h(1)=1)h
高分CKA考後劃重點啦,這張經驗貼我給滿分!
近日,筆者花了些時間完成了CNCF官方基金會推出的CKA(Certified Kubernetes Administrator)認證考試,這篇文章就簡單說一下CKA認證考試是撒,考試的大致過程以及參加考試一些準備過程。更多詳細資訊,請參考本文末尾的參考資料部分的CKA candidate handbook關於
ACM--大數階乘位數--HDOJ 1018--Big Number--水
HDOJ題目地址:傳送門 Big Number Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 34
杭電1018 Big Number
7 19這題當初看題目的時候就挺懵逼,然後用Geogle翻譯翻出來,發現是求輸入的數的階乘的位數,階乘的話用遞迴就能實現,但是輸入的數一大,大數相乘本來就很難實現,而且結果會超出表示範圍,long long也扛不住,怎麼儲存這些中間資料呢,還是懵逼qwq...然後就在discuss中瞭解到:任意一個正整數a
1018 Big Number
In many applications very large integers numbers are required. Some of these applications are using keys for secure transmission of data, encryption, etc.
HDU 1212 ( Big Number )
//終於用java做了一個題目了,不過沒那感覺 Problem : 1212 ( Big Number ) Judge Status : Accepted RunId : 5690829 Language : Java Author : ssun Cod
離職中的這段時間,我在做的事情
看了很多辭職的理由,有薪水的問題,有公司自身的問題,或者其他的很多原因。但是,每次的離職,其實也就是在做另一種選擇和打算。那麼,有的選擇會花費一些時日,有些選擇僅僅眨眼間就可以結束了。 所以,離職的這段時間,總不可能無聊的等待什麼面試,倒也得給自己的生
Examining the Rooms HDU - 3625(第一類斯特林數)
names can pre main bits ons pro div spa Examining the Rooms HDU - 3625 題意:n個房間,每個房間裏有一把鑰匙(等概率),每進到一個房間可以得到鑰匙去該鑰匙對應的房間,如果當前沒有鑰匙則可以破門而入(1
hdu 2643 rank 第二類斯特林數
ini using cout cin type log ios cnblogs sum 題意:給定n個人,要求這n個人的所有可能排名情況,可以多個人並列(這個是關鍵)。 題解:由於存在並列的問題,那麽對於n個人,我們最多有n個排名,枚舉一下1~n,累加一下就好。(註意這裏是
【BZOJ4555】求和(第二類斯特林數,組合數學,NTT)
name can efi fin def mes %d str ostream 【BZOJ4555】求和(第二類斯特林數,組合數學,NTT) 題面 BZOJ 題解 推推柿子 \[\sum_{i=0}^n\sum_{j=0}^iS(i,j)·j!·2^j\] \[=\sum_
【BZOJ5093】圖的價值(第二類斯特林數,組合數學,NTT)
ble math n) .cn fin eve 都是 max online 【BZOJ5093】圖的價值(第二類斯特林數,組合數學,NTT) 題面 BZOJ 題解 單獨考慮每一個點的貢獻: 因為不知道它連了幾條邊,所以枚舉一下 \[\sum_{i=0}^{n-1}C_{n-
HDU 2512 一卡通大冒險(第二類斯特林數+貝爾數)
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=2512 題目大意:因為長期鑽研演算法, 無暇顧及個人問題,BUAA ACM/ICPC 訓練小組的帥哥們大部分都是單身。某天,他們在機房商量一個絕妙的計劃"一卡通大冒險"。這個計劃是由wf最先提出來的,計劃的內容是