這本書是多年來我對專業(yè)程式員所做的C++ 教學(xué)課程下的一個(gè)自然產(chǎn)物。我發(fā)現(xiàn),大部份學(xué)生在一個(gè)星期的密集訓(xùn)練之後,即可適應(yīng)這個(gè)語言的基本架構(gòu),但要他們「將這些基礎(chǔ)架構(gòu)以有效的方式組合運(yùn)用」,我實(shí)在不感樂觀。於是我開始嘗試組織出一些簡短、明確、容易記憶的準(zhǔn)則,做為C++ 高實(shí)效性程式開發(fā)過程之用。那都是經(jīng)驗(yàn)豐富的C++ 程式員幾乎總是會奉行或幾乎肯定要避免的一些事情。structures of computer science.
標(biāo)簽: 程式
上傳時(shí)間: 2016-10-13
上傳用戶:362279997
Euler函數(shù): m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函數(shù): 定義:phi(m) 表示小于等于m并且與m互質(zhì)的正整數(shù)的個(gè)數(shù)。 phi(m) = p1^(r1-1)*(p1-1) * p2^(r2-1)*(p2-1) * …… * pn^(rn-1)*(pn-1) = m*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pn) = p1^(r1-1)*p2^(r2-1)* …… * pn^(rn-1)*phi(p1*p2*……*pn) 定理:若(a , m) = 1 則有 a^phi(m) = 1 (mod m) 即a^phi(m) - 1 整出m 在實(shí)際代碼中可以用類似素?cái)?shù)篩法求出 for (i = 1 i < MAXN i++) phi[i] = i for (i = 2 i < MAXN i++) if (phi[i] == i) { for (j = i j < MAXN j += i) { phi[j] /= i phi[j] *= i - 1 } } 容斥原理:定義phi(p) 為比p小的與p互素的數(shù)的個(gè)數(shù) 設(shè)n的素因子有p1, p2, p3, … pk 包含p1, p2…的個(gè)數(shù)為n/p1, n/p2… 包含p1*p2, p2*p3…的個(gè)數(shù)為n/(p1*p2)… phi(n) = n - sigm_[i = 1](n/pi) + sigm_[i!=j](n/(pi*pj)) - …… +- n/(p1*p2……pk) = n*(1 - 1/p1)*(1 - 1/p2)*……*(1 - 1/pk)
標(biāo)簽: Euler lt phi 函數(shù)
上傳時(shí)間: 2014-01-10
上傳用戶:wkchong
//Euler 函數(shù)前n項(xiàng)和 /* phi(n) 為n的Euler原函數(shù) if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p)*(i-1) 對于約數(shù):divnum 如果i|pr[j] 那么 divnum[i*pr[j]]=divsum[i]/(e[i]+1)*(e[i]+2) //最小素因子次數(shù)加1 否則 divnum[i*pr[j]]=divnum[i]*divnum[pr[j]] //滿足積性函數(shù)條件 對于素因子的冪次 e[i] 如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次數(shù)加1 否則 e[i*pr[j]]=1 //pr[j]為1次 對于本題: 1. 篩素?cái)?shù)的時(shí)候首先會判斷i是否是素?cái)?shù)。 根據(jù)定義,當(dāng) x 是素?cái)?shù)時(shí) phi[x] = x-1 因此這里我們可以直接寫上 phi[i] = i-1 2. 接著我們會看prime[j]是否是i的約數(shù) 如果是,那么根據(jù)上述推導(dǎo),我們有:phi[ i * prime[j] ] = phi[i] * prime[j] 否則 phi[ i * prime[j] ] = phi[i] * (prime[j]-1) (其實(shí)這里prime[j]-1就是phi[prime[j]],利用了歐拉函數(shù)的積性) 經(jīng)過以上改良,在篩完素?cái)?shù)后,我們就計(jì)算出了phi[]的所有值。 我們求出phi[]的前綴和 */
標(biāo)簽: phi Euler else 函數(shù)
上傳時(shí)間: 2016-12-31
上傳用戶:gyq
這是一套非常好用的C++物件導(dǎo)向式程式編輯器,C++是程序語言C的擴(kuò)充,C/C++語言已經(jīng)是一套古老語言,成為了很多作業(yè)系統(tǒng)與應(yīng)用軟體的編輯大宗,環(huán)境適用於WIN95~WINXP。
標(biāo)簽: 程式
上傳時(shí)間: 2014-08-06
上傳用戶:tyler
FFT和IFFT的轉(zhuǎn)換,用VC語言編寫 FFT和IFFT的轉(zhuǎn)換,用VC語言編寫
上傳時(shí)間: 2013-12-19
上傳用戶:yiwen213
Visual 開發(fā) 希望對你們有幫助 public static int Rom(int n, int m)//雙寄或雙偶 { int count = 0 //第一排Y坐標(biāo)上要幾個(gè) if (n < m) { for (int i = 1 i <= n i = i + 2) { count++ } } else { for (int j = 1 j <= m j = j + 2) { count++ } } return count }
標(biāo)簽: int Visual public static
上傳時(shí)間: 2013-12-13
上傳用戶:懶龍1988
遙控解碼通過電腦串口顯示 /* 晶振:11.0569MHz */ #include <REGX52.h> #define uchar unsigned char uchar data IRcode[4] //定義一個(gè)4字節(jié)的數(shù)組用來存儲代碼 uchar CodeTemp //編碼字節(jié)緩存變量 uchar i,j,k //延時(shí)用的循環(huán)變量 sbit IRsignal=P3^2 //HS0038接收頭OUT端直接連P3.2(INT0) /**************************延時(shí)0.9ms子程序**********************/ void Delay0_9ms(void) {uchar j,k for(j=18 j>0 j--) for(k=20 k>0 k--) } /***************************延時(shí)1ms子程序**********************/ void Delay1ms(void) {uchar i,j for(i=2 i>0 i--) for(j=230 j>0 j--) }
標(biāo)簽: uchar unsigned 11.0569 include
上傳時(shí)間: 2013-12-12
上傳用戶:Breathe0125
Instead of finding the longest common subsequence, let us try to determine the length of the LCS. Then tracking back to find the LCS. Consider a1a2…am and b1b2…bn. Case 1: am=bn. The LCS must contain am, we have to find the LCS of a1a2…am-1 and b1b2…bn-1. Case 2: am≠bn. Wehave to find the LCS of a1a2…am-1 and b1b2…bn, and a1a2…am and b b b b1b2…bn-1 Let A = a1 a2 … am and B = b1 b2 … bn Let Li j denote the length of the longest i,g g common subsequence of a1 a2 … ai and b1 b2 … bj. Li,j = Li-1,j-1 + 1 if ai=bj max{ L L } a≠b i-1,j, i,j-1 if ai≠j L0,0 = L0,j = Li,0 = 0 for 1≤i≤m, 1≤j≤n.
標(biāo)簽: the subsequence determine Instead
上傳時(shí)間: 2013-12-17
上傳用戶:evil
在通訊系統(tǒng)中常見到的cordic,是個(gè)用很少複雜度就能實(shí)現(xiàn)三角函數(shù)的電路,檔案中有C語言的CORDIC程式
上傳時(shí)間: 2017-03-07
上傳用戶:lepoke
//初始化 initscr() //獲得屏幕尺寸 getmaxyx(stdscr, h, w) //畫背景 for(i=0 i<h i++) for(j=0 j<w j++){ mvaddch(i, j, ACS_CKBOARD) } refresh() //建立窗口 pad = newpad(80, 128) for(i=0 i<80 i++){ char line[128] sprintf(line, "This line in pad is numbered d\n", i) mvwprintw(pad, i, 0, line) } //刷新屏幕 refresh() prefresh(pad, 0, 1, 5, 10, 20, 45) for(i=0 i<50 i++){ prefresh(pad, i+1, 1, 5, 10, 20, 45) usleep(30000) } //等待按鍵 getch()
標(biāo)簽: getmaxyx initscr stdscr for
上傳時(shí)間: 2014-08-30
上傳用戶:龍飛艇
蟲蟲下載站版權(quán)所有 京ICP備2021023401號-1