社区讨论

关于常数

学术版参与者 6已保存回复 20

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
20 条
当前快照
1 份
快照标识符
@lo2y7w3g
此快照首次捕获于
2023/10/23 21:43
2 年前
此快照最后确认于
2023/10/23 21:43
2 年前
查看原帖
有如下的一个FWT函数:
CPP
for(int i=0;i<n;i++){
	for(int j=0;j<state;j++)
    	if(j&(1<<i)) ad(a[j],a[j^(1<<i)),ad(b[j],b[j^(1<<i)]);
	for(int j=state-1;~j;j--)
    	if(!(j&(1<<i))) ad(c[j],c[j^(1<<i)),ad(d[j],d[j^(1<<i)]);
}
在这种FWT下,整个代码运行速度是 17s17s
但内层循环我只要注释掉任意一个,运行速度就骤降至 2s2s
场上因为这个东西思索了1h。
请问这是什么原因呢。
函数其他部分的复杂度都是确定的,不会因为 FWT 出来的值改变而改变。

回复

20 条回复,欢迎继续交流。

正在加载回复...