欧拉函数

本文详细介绍了欧拉函数的多种性质及应用,包括p^k型、mn型欧拉函数的计算方法,以及特殊的性质和欧拉定理、费马小定理等内容。此外,还提供了三种不同的欧拉函数计算模板。

 

欧拉函数的性质:

 

1)   p^k型欧拉函数:

若N是质数p(即N=p), φ(n)= φ(p)=p-p^(k-1)=p-1。

若N是质数p的k次幂(即N=p^k),φ(n)=p^k-p^(k-1)=(p-1)p^(k-1)。

(2)mn型欧拉函数

设n为正整数,以φ(n)表示不超过n且与n互素的正整数的个数,称为n的欧拉函数值。若m,n互质,φ(mn)=φ(m)φ(n)

(3)特殊性质:

若n为奇数时,φ(2n)=φ(n)。

对于任何两个互质 的正整数a,n(n>2)有:a^φ(n)=1 mod n (恒等于)此公式即 欧拉定理

当n=p 且 a与素数p互质(即:gcd(a,p)=1)则上式有: a^(p-1)=1 mod n (恒等于)此公式即 费马小定理

(4)对于n,p为n的素因子

φ(p*n) = p*φ(n)(由最根本的定理可知)

 

相关证明:https://www.cnblogs.com/handsomecui/p/4755455.html

欧拉函数模板

 

 1 int euler_phi(int n)//求单个
 2 {
 3     int m = (int)sqrt(n + 0.5);
 4     int ans = n;
 5     for(int i = 2; i <= m; i++)if(n % i == 0)
 6     {
 7         ans = ans / i * (i - 1);
 8         while(n % i == 0)n /= i;
 9     }
10     if(n > 1)ans = ans / n * (n - 1);
11     return ans;
12 }
13 void phi_table(int n, int* phi)//打表
14 {
15     for(int i = 0; i <= n; i++)phi[i] = i;
16     for(int i = 2; i <= n; i++)if(phi[i] == i)
17         for(int j = i; j <= n; j += i)phi[j] = phi[j] / i * (i - 1);
18 }

 

 1 void phi_table(int n)//稍微快一点的打表 
2 { 3 phi[1] = 1; 4 for(int i = 2; i <= n; i++) 5 { 6 if(!phi[i])//素数 7 { 8 for(int j = i; j <= n; j += i) 9 { 10 if(!phi[j])phi[j] = j; 11 phi[j] = phi[j] / i * (i - 1); 12 } 13 } 14 } 15 }
 1 ll phi[maxn];
 2 ll prime[maxn];
 3 bool not_prime[maxn];
 4 int cnt;
 5 void phi_table(int n)//最快打表 O(n)
 6 {
 7     phi[1] = 1;
 8     for(int i = 2; i <= n; i++)
 9     {
10         if(!not_prime[i])//素数
11         {
12             prime[++cnt] = i;
13             phi[i] = i - 1;
14         }
15         for(int j = 1; j <= cnt && i * prime[j] <= n; j++)
16         {
17             not_prime[i * prime[j]] = 1;
18             if(i % prime[j] == 0)//第j个素数是i的因子
19             {
20                 phi[i * prime[j]] = phi[i] * prime[j];
21                 break;
22             }
23             else phi[i * prime[j]] = phi[i] * (prime[j] - 1);
24         }
25     }
26 }

 

转载于:https://www.cnblogs.com/fzl194/p/9017174.html

需求响应动态冰蓄冷系统与需求响应策略的优化研究(Matlab代码实现)内容概要:本文围绕需求响应动态冰蓄冷系统及其优化策略展开研究,结合Matlab代码实现,探讨了在电力需求侧管理背景下,冰蓄冷系统如何通过优化运行策略参与需求响应,以实现削峰填谷、降低用电成本和提升能源利用效率的目标。研究内容包括系统建模、负荷预测、优化算法设计(如智能优化算法)以及多场景仿真验证,重点分析不同需求响应机制下系统的经济性和运行特性,并通过Matlab编程实现模型求解与结果可视化,为实际工程应用提供理论支持和技术路径。; 适合人群:具备一定电力系统、能源工程或自动化背景的研究生、科研人员及从事综合能源系统优化工作的工程师;熟悉Matlab编程且对需求响应、储能优化等领域感兴趣的技术人员。; 使用场景及目标:①用于高校科研中关于冰蓄冷系统与需求响应协同优化的课题研究;②支撑企业开展楼宇能源管理系统、智慧园区调度平台的设计与仿真;③为政策制定者评估需求响应措施的有效性提供量化分析工具。; 阅读建议:建议读者结合文中Matlab代码逐段理解模型构建与算法实现过程,重点关注目标函数设定、约束条件处理及优化结果分析部分,同时可拓展应用其他智能算法进行对比实验,加深对系统优化机制的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值