acm常识入门(给即将进队或者刚刚进队的新生)(仍在更新)

本文介绍了模意义(同余)的基本概念及其在加减乘除运算中的应用,并通过实例展示了如何利用费马小定理进行模意义下的除法运算转换为乘法运算,同时提供了快速幂算法的解释代码。

模意义(同余)

同余为数论中的重要概念:
一个正整数m,如果两个整数a和b满足a-b能够被m整除,即(a-b)/m得到一个整数,那么就称整数a与b对模m同余。
记作: a≡b(modm)a≡b(mod m)ab(modm)或者说 a%m=ba\%m = ba%m=b
其中 %就是取模运算符
对模m同余是整数的一个等价关系。

同余有很多奇妙的性质和玩法()
首先我们约定:大写字母如A≡a(modp)A ≡ a(mod p)Aa(modp)
乘法:

若:AB = C , 则ab %p= c%p
乘法在模意义下同余仍成立;
A=k1∗p+a;A = k1 * p +a;A=k1p+a;
B=k2∗p+b;B = k2 * p +b;B=k2p+b;
C=k1∗k2∗p∗p+(a∗k2+b∗k1)∗p+a∗bC = k1*k2*p*p +(a*k2+b*k1)*p + a*bC=k1k2pp+(ak2+bk1)p+ab

加减法同理,手推即可发现仍然不影响同余
除法

在除法中要引进一个定理:
费马小定理:结论为:aP−1≡1(modP)a^{P-1} ≡ 1 (mod P)aP11(modP)
即a的p-1次方对模P意义下与1同余;
那么显然aP−2a^{P-2}aP2就可以看成模意义下的1/a;因为a∗a−1=1a*a^{-1} = 1aa1=1;
至此,引入一个方便计算a^b的算法,叫做快速幂,是一个简单实用的log2∗blog_{2}*{b}log2b 次乘法时间内就能求出来a^b的算法
这是快速幂的解释代码:https://paste.ubuntu.com/p/zJTMWytKFb/

那现在我们要计算b/a在模P意义下等于何数值,显然需要求b∗aP−2%Pb*a^{P-2}\%PbaP2%P
就能把除法成功变成乘法

这里只说明同余意义下的加减乘除。还有开根号等各种运算都能在模意义下找到解释;

累加累乘,表达式的化简

∑\sum这是累加符号
∏\prod这是累乘符号
[][][]这个在式子中出现表示的含义是方括号内容为真,这[**] = 1,否者为假,可以认为是一个真值判别符号;
∣|这个是整除符号,a|b说明b/a的结果是整数;例如:2|8 , 3|9
An=2n+3;A_n = 2n+3;An=2n+3;
那么数列A的前n项和SnS_nSn = ∑i=1ni∗2+1\sum_{i=1}^{n}i*2+1i=1ni2+1
那么n的阶乘n!=∏i=1nin! = \prod_{i=1}^nin!=i=1ni

面对一些表达式,我们看起来要枚举两个数各自从1到n,时间复杂度为n方,但是其实式子化简之后就会变得很简单:以下的n都是1e5:

1

∑i=1n∑j=1n∑k=1ni∗j∗k\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{k=1}^{n} i*j*ki=1nj=1nk=1nijk
这个式子乍一看是枚举三个元素,求元素之积,只需要固定ij,思考k的变化:显然是ij+ij2+ij3,这是一个等差数列,于是我们快快乐乐地把式子变成:
∑i=1n∑j=1ni∗j∗(n+1)∗n2\sum_{i=1}^{n}\sum_{j=1}^{n} i*j*\frac{(n+1)*n}{2}i=1nj=1nij2(n+1)n
一看固定i,j的变化也是等差数列,最后i也是等差数列,上面的式子继续化成:
((n+1)∗n2)3(\frac{(n+1)*n}{2})^3(2(n+1)n)3

【复现】并_离网风光互补制氢合成氨系统容量-调度优化分析(Python代码实现)内容概要:本文围绕“并_离网风光互补制氢合成氨系统容量-调度优化分析”的主题,提供了基于Python代码实现的技术研究与复现方法。通过构建风能、太阳能互补的可再生能源系统模型,结合电解水制氢与合成氨工艺流程,对系统的容量配置与运行调度行联合优化分析。利用优化算法求解系统在不同运行模式下的最优容量配比和调度策略,兼顾经济性、能效性和稳定性,适用于并网与离网两种场景。文中强调通过代码实践完成系统建模、约束设定、目标函数设计及求解过程,帮助读者掌握综合能源系统优化的核心方法。; 适合人群:具备一定Python编程基础和能源系统背景的研究生、科研人员及工程技术人员,尤其适合从事可再生能源、氢能、综合能源系统优化等相关领域的从业者;; 使用场景及目标:①用于教学与科研中对风光制氢合成氨系统的建模与优化训练;②支撑实际项目中对多能互补系统容量规划与调度策略的设计与验证;③帮助理解优化算法在能源系统中的应用逻辑与实现路径;; 阅读建议:建议读者结合文中提供的Python代码行逐模块调试与运行,配合文档说明深入理解模型构建细节,重点关注目标函数设计、约束条件设置及求解器调用方式,同时可对比Matlab版本实现以拓宽工具应用视野。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值