-
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)
對(duì)于約數(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ù)條件
對(duì)于素因子的冪次 e[i]
如果i|pr[j] e[i*pr[j]]=e[i]+1 //最小素因子次數(shù)加1
否則 e[i*pr[j]]=1 //pr[j]為1次
對(duì)于本題:
1. 篩素?cái)?shù)的時(shí)候首先會(huì)判斷i是否是素?cái)?shù)。
根據(jù)定義,當(dāng) x 是素?cái)?shù)時(shí) phi[x] = x-1
因此這里我們可以直接寫上 phi[i] = i-1
2. 接著我們會(huì)看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
-
遙控解碼通過電腦串口顯示
/* 晶振:11.0569MHz */
#include <REGX52.h>
#define uchar unsigned char
uchar data IRcode[4] //定義一個(gè)4字節(jié)的數(shù)組用來存儲(chǔ)代碼
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
-
關(guān)于密碼的算子,將來也許有變化(本程序在Access2003環(huán)境下測試通過)。
標(biāo)簽:
密碼
上傳時(shí)間:
2013-12-08
上傳用戶:gundamwzc
-
MIPS 仿真器,能夠?qū)崿F(xiàn)匯編,反匯編和模擬運(yùn)行。自己開發(fā)的,java課的大程,可能問題比較多,僅做參考,而且程序架構(gòu)也設(shè)計(jì)地不是很好。但作為新手大程學(xué)習(xí)和簡單的MIPS模擬還是沒有問題的。
本 MIPS 模擬器支持的指令如下:
add,addi,sub,subi,and,andi,or,ori,nor,beq,bne,j,jr,jal,lw,lh,lb,sw,sh,sb, 其中所有的跳
轉(zhuǎn)指令第三個(gè)操作數(shù)只能為一個(gè)行標(biāo)簽[不支持相對(duì)地址以及絕對(duì)地址],標(biāo)簽可
以寫在一行開頭,以冒號(hào)結(jié)尾。
標(biāo)簽:
MIPS
仿真器
上傳時(shí)間:
2014-01-04
上傳用戶:ruixue198909
-
演算法是指利用電腦解決問題所需要的具體方法和步驟。也就是說給定初始狀態(tài)或輸入數(shù)據(jù),經(jīng)過電腦程序的有限次運(yùn)算,能夠得出所要求或期望的終止?fàn)顟B(tài)或輸出數(shù)據(jù)。本書介紹電腦科學(xué)中重要的演算法及其分析與設(shè)計(jì)技術(shù)
標(biāo)簽:
算法
上傳時(shí)間:
2017-06-09
上傳用戶:wys0120
-
//初始化
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
上傳用戶:龍飛艇
-
嚴(yán)格按照BP網(wǎng)絡(luò)計(jì)算公式來設(shè)計(jì)的一個(gè)matlab程序,對(duì)BP網(wǎng)絡(luò)進(jìn)行了優(yōu)化設(shè)計(jì)
優(yōu)化1:設(shè)計(jì)了yyy,即在o(k)計(jì)算公式時(shí),當(dāng)網(wǎng)絡(luò)進(jìn)入平坦區(qū)時(shí)(<0.0001)學(xué)習(xí)率加大,出來后學(xué)習(xí)率又還原
優(yōu)化2:v(i,j)=v(i,j)+deltv(i,j)+a*dv(i,j)
標(biāo)簽:
matlab
yyy
BP網(wǎng)絡(luò)
計(jì)算公式
上傳時(shí)間:
2014-11-30
上傳用戶:妄想演繹師
-
文件包含姿態(tài)解算和捷聯(lián)慣性導(dǎo)航的文檔,四軸和GPS的設(shè)計(jì)參考很實(shí)用。
標(biāo)簽:
姿態(tài)解算
GPS
上傳時(shí)間:
2015-07-10
上傳用戶:liudehong