关于置换的疑问
查看原帖
关于置换的疑问
339992
Icy_Fire楼主2021/4/18 15:43

置换应该不满足交换律吧,但为什么下面两种快速幂写法都过了

for(;k;k>>=1){
	if(k&1){
		for(int i=1;i<=n;i++) tmp[i]=pos[ans[i]];
		for(int i=1;i<=n;i++) ans[i]=tmp[i];
	}
	for(int i=1;i<=n;i++) tmp[i]=pos[pos[i]];
	for(int i=1;i<=n;i++) pos[i]=tmp[i];
}
for(;k;k>>=1){
	if(k&1){
		for(int i=1;i<=n;i++) tmp[i]=ans[pos[i]];
		for(int i=1;i<=n;i++) ans[i]=tmp[i];
	}
	for(int i=1;i<=n;i++) tmp[i]=pos[pos[i]];
	for(int i=1;i<=n;i++) pos[i]=tmp[i];
}
2021/4/18 15:43
加载中...