Effective C++ 中文版第三版 高清PDF.rar - 本书是侯捷翻译的经典书籍,适合所有c++程序员,2017-10-31 12:46:58,下载10次
C#入门经典ppt.rar - c#入门经典PPT,内容由浅入深,适合准备入门的新手,2017-10-31 12:43:44,下载2次
Efficient_C_Performance_Programming_Techniques.rar - Far too many programmers and software designers consider efficient C++ to be an
oxymoron. They regard C++ as inherently slow and inappropriate for performance-
critical applications. Consequently, C++ has had little success penetrating domains such
as networking, operating system kernels, device drivers, and others. ,2010-10-30 09:35:18,下载2次
Windows_Programming_(5).rar - 本书介绍了在Microsoft Windows 98、Microsoft Windows NT 4.0和Windows NT 5.0
下程序写作的方法。这些程序用C语言编写并使用原始的Windows Application
Programming Interface(API),2010-10-30 09:31:29,下载3次
Hanoi(gray).rar - //使用gray code的解法
#include <iostream>
#include <cmath>
using namespace std
#define ZERO 0
#define ONE 1
#define ODD 1
#define EVEN 0
#define RIGHT 1
#define LEFT 0
#define MAX 10,2008-12-05 21:19:35,下载20次
n_yueshu.rar - (一)
求a~b 之间各个数的约数个数之和。(其中包括a和b在内)
ans = sigma(f(i)) , (a <= i <= b) , 其中f(i)表示i的约数的个数 ,2008-12-05 21:18:45,下载17次
Euler_fuction2.rar - //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[]的前缀和
*/,2008-12-05 21:16:02,下载30次
Euler_fuction.rar - 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)
,2008-12-05 21:14:41,下载25次
bank.rar - 银行家算法。银行客户系统常用的一个算法。。此代码效率不高,如果有大牛能够给予指教,感激不尽,2008-12-05 21:09:48,下载24次