Euler函數: m = p1^r1 * p2^r2 * …… * pn^rn ai >= 1 , 1 <= i <= n Euler函數: 定義:phi(m) 表示小于等于m并且與m互質的正整數的個數。 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 在實際代碼中可以用類似素數篩法求出 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互素的數的個數 設n的素因子有p1, p2, p3, … pk 包含p1, p2…的個數為n/p1, n/p2… 包含p1*p2, p2*p3…的個數為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)
上傳時間: 2014-01-10
上傳用戶:wkchong
//Euler 函數前n項和 /* phi(n) 為n的Euler原函數 if( (n/p) % i == 0 ) phi(n)=phi(n/p)*i else phi(n)=phi(n/p)*(i-1) 對于約數:divnum 如果i|pr[j] 那么 divnum[i*pr[j]]=divsum[i]/(e[i]+1)*(e[i]+2) //最小素因子次數加1 否則 divnum[i*pr[j]]=divnum[i]*divnum[pr[j]] //滿足積性函數條件 對于素因子的冪次 e[i] 如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次數加1 否則 e[i*pr[j]]=1 //pr[j]為1次 對于本題: 1. 篩素數的時候首先會判斷i是否是素數。 根據定義,當 x 是素數時 phi[x] = x-1 因此這里我們可以直接寫上 phi[i] = i-1 2. 接著我們會看prime[j]是否是i的約數 如果是,那么根據上述推導,我們有:phi[ i * prime[j] ] = phi[i] * prime[j] 否則 phi[ i * prime[j] ] = phi[i] * (prime[j]-1) (其實這里prime[j]-1就是phi[prime[j]],利用了歐拉函數的積性) 經過以上改良,在篩完素數后,我們就計算出了phi[]的所有值。 我們求出phi[]的前綴和 */
上傳時間: 2016-12-31
上傳用戶:gyq
Visual 開發 希望對你們有幫助 public static int Rom(int n, int m)//雙寄或雙偶 { int count = 0 //第一排Y坐標上要幾個 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 }
上傳時間: 2013-12-13
上傳用戶:懶龍1988
歐基理德輾轉相除法(之一) 以歐基理德輾轉相除法求出m,n這2個整數的最大公因數
標簽: 除法
上傳時間: 2013-12-30
上傳用戶:wangzhen1990
設有由n個不相同的整數組成的數列,記為: a(1)、a(2)、……、a(n)且a(i)<>a(j) (i<>j) 例如3,18,7,14,10,12,23,41,16,24。 若存在i1<i2<i3< … < ie 且有a(i1)<a(i2)< … <a(ie)則稱為長度為e的不下降序列。如上例中3,18,23,24就是一個長度為4的不下降序列,同時也有3,7,10,12,16,24長度為6的不下降序列。程序要求,當原數列給出之后,求出最長的不下降序列。
上傳時間: 2013-12-14
上傳用戶:tonyshao
一份射頻PCB設計的經驗總結。涉及到手機,GPS,等高頻電路的PCB設計方法。
標簽: PCB
上傳時間: 2017-07-21
上傳用戶:sssl
c++ Ngô n ngữ C cho vi đ iề u khiể n Các tài liệ u tham khả o, ebook. Programming Microcontrollers in C (Ted Van Sickle) C Programming for Microcontrollers (Joe Pardue SmileyMicros.com ) Programming 16-Bit PIC Microcontrollers in C (Jucio di jasio ) C Programming for AVR Programming embedded system I,II (Michael J . Pont ) ( các tài liệ u này đ ã down load về )
上傳時間: 2017-07-29
上傳用戶:壞壞的華仔
metricmatlab ch ¬ ng 4 Ma trË n - c¸ c phÐ p to¸ n vÒ ma trË n. 4.1 Kh¸ i niÖ m: - Trong MATLAB d÷ liÖ u ® Ó ® a vµ o xö lý d íi d¹ ng ma trË n. - Ma trË n A cã n hµ ng, m cét ® î c gä i lµ ma trË n cì n m. § î c ký hiÖ u An m - PhÇ n tö aij cñ a ma trË n An m lµ phÇ n tö n» m ë hµ ng thø i, cét j . - Ma trË n ® ¬ n ( sè ® ¬ n lÎ ) lµ ma trË n 1 hµ ng 1 cét. - Ma trË n hµ ng ( 1 m ) sè liÖ u ® î c bè trÝ trª n mét hµ ng. a11 a12 a13 ... a1m - Ma trË n cét ( n 1) sè liÖ u ® î c bè trÝ trª n 1 cét.
標簽: metricmatlab 203 184 tr
上傳時間: 2017-07-29
上傳用戶:來茴
迷宮問題以一個m*n的長方陣表示迷宮,0和1分別表示迷宮中的通路和障礙.設計一個程序,對任意設定的迷宮,求出一條入口到出口的通路,或的出沒有通路的結論. {基本要求}: (1)實現一個以鏈表作存儲結構的棧類型,然后編寫一個求解迷宮的非遞歸程序。求得的通路以三元組(i,j,d)的形式輸出,其中:(i,j)指示迷宮中的一個坐標,d表示走到下一個坐標的方向. (2)編寫遞歸形式的算法,求迷宮中所有通路. (3)以方陣形式輸出迷宮及其通路
標簽: 迷宮
上傳時間: 2014-01-03
上傳用戶:zhengzg
1-1前言一般人所能夠感受到聲音的頻率約介於5H2-20KHz,超音波(Ultrasonic wave)即爲頻率超過20KHz以上的音波或機械振動,因此超音波馬達就是利用超音波的彈性振動頻率所構成的制動力。超音波馬達的內部主要是以壓電陶瓷材料作爲激發源,其成份是由鉛(Pb)、結(Zr)及鈦(Ti)的氧化物皓鈦酸鉛(Lead zirconate titanate,PZT)製成的。將歷電材料上下方各黏接彈性體,如銅或不銹鋼,並施以交流電壓於壓電陶瓷材料作爲驅動源,以激振彈性體,稱此結構爲定子(Stator),將其用彈簧與轉子Rotor)接觸,將所産生摩擦力來驅使轉子轉動,由於壓電材料的驅動能量很大,並足以抗衡轉子與定子間的正向力,雖然伸縮振幅大小僅有數徵米(um)的程度,但因每秒之伸縮達數十萬次,所以相較於同型的電磁式馬達的驅動能量要大的許多。超音波馬達的優點爲:1,轉子慣性小、響應時間短、速度範圍大。2,低轉速可產生高轉矩及高轉換效率。3,不受磁場作用的影響。4,構造簡單,體積大小可控制。5,不須經過齒輸作減速機構,故較爲安靜。實際應用上,超音波馬達具有不同於傳統電磁式馬達的特性,因此在不適合應用傳統馬達的場合,例如:間歇性運動的裝置、空間或形狀受到限制的場所;另外包括一些高磁場的場合,如核磁共振裝置、斷層掃描儀器等。所以未來在自動化設備、視聽音響、照相機及光學儀器等皆可應用超音波馬達來取代。
標簽: 超聲波電機
上傳時間: 2022-06-17
上傳用戶: