关于常数
  • 板块学术版
  • 楼主lzqy_
  • 当前回复20
  • 已保存回复20
  • 发布时间2023/3/12 19:55
  • 上次更新2023/10/23 21:43:49
查看原帖
关于常数
288716
lzqy_楼主2023/3/12 19:55

有如下的一个FWT函数:

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 出来的值改变而改变。

2023/3/12 19:55
加载中...