快速幂运算

1.乘方取模问题:

给定正整数x,n,m,计算x^n(mod m)。

最简单代码,复杂度为O(n):

ll res=1;
for(int i=0;i<n;i++)
{
    res=res*x%m;
}

2、快速幂,将n表示为2的幂次的和:,可以将x^n转化为:,依次由n的二进制位求x^2ki即可,复杂度降为O(logn)。例如,x^23=x^16*x^4*x^2*x(23二进制数是10111)。

typedef long long ll;
ll mod_pow(ll x,ll n,ll mod)
{
	ll res=1;
	while(n>0)
	{		
		if(n&1) res=(res*x)%mod;
		x=x*x%mod;//底数不断平方
		n>>=1;
	}
	return res;
 } 

x为偶数时 x^n=(x^2)^n/2;x为奇数时,x^n=(x^2)^n/2*x,不断递归转为n/2情况,可以在O(logn)时间内完成幂运算:


ll mod_pow(ll x,ll n,int mod)
{
	if(n==0) return 1;
	ll res=mod_pow(x*x%mod,n/2,mod);
	if(n&1) res=res*x%mod;
	return res;
} 

3.矩阵快速幂

将上面整数的快速幂中乘法换成矩阵乘法即可。

typedef long long ll;
struct matrix{
	ll v[5][5];
	matrix(){memset(v,0,sizeof(v));}
};
//矩阵乘法
matrix matrix_multi(matrix x,matrix y,ll mod)
{
	matrix res;
	for(int i=1;i<=N;i++)
		for(int j=1;j<=N;j++)
			if(x.v[i][j])//优化
				for(int k=1;k<=N;k++)
				{
					res.v[i][k]+=x.v[i][j]*y.v[j][k];
					res.v[i][k]%=mod;
				}
	return res;
}
//快速幂
matrix matrix_pow(matrix x,ll n,ll mod)
{
	matrix res;
	//初始化为单位矩阵 
	for(int i=1;i<=N;i++)
		res.v[i][i]=1;
	while(n>0)
	{
		if(n&1) res=matrix_multi(res,x,mod);
		x=matrix_multi(x,x,mod);
		n>>=1;
	}
	return res;
}

 

 

 

 

 

内容概要:该研究通过在黑龙江省某示范村进行24小时实地测试,比较了燃煤炉具与自动/手动进料生物质炉具的污染物排放特征。结果显示,生物质炉具相比燃煤炉具显著降低了PM2.5、COSO2的排放(自动进料分别降低41.2%、54.3%、40.0%;手动进料降低35.3%、22.1%、20.0%),但NOx排放未降低甚至有所增加。研究还发现,经济性便利性是影响生物质炉具推广的重要因素。该研究不仅提供了实际排放数据支持,还通过Python代码详细复现了排放特征比较、减排效果计算结果可视化,进一步探讨了燃料性质、动态排放特征、碳平衡计算以及政策建议。 适合人群:从事环境科学研究的学者、政府环保部门工作人员、能源政策制定者、关注农村能源转型的社会人士。 使用场景及目标:①评估生物质炉具在农村地区的推广潜力;②为政策制定者提供科学依据,优化补贴政策;③帮助研究人员深入了解生物质炉具的排放特征技术改进方向;④为企业研发更高效的生物质炉具提供参考。 其他说明:该研究通过大量数据分析拟,揭示了生物质炉具在实际应用中的优点挑战,特别是NOx排放增加的问题。研究还提出了多项具体的技术改进方向政策建议,如优化进料方式、提高热效率、建设本地颗粒厂等,为生物质炉具的广泛推广提供了可行路径。此外,研究还开发了一个智能政策建议生成系统,可以根据不同地区的特征定制化生成政策建议,为农村能源转型提供了有力支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值