8月17日
新旧ロジックでn2,n4,n8判定の差分をロギングして比較してみた。
以下が新ロジックだとn4だったが、旧ロジックだとn8だった
t0:3,t1:5,l0:4,l1:2,b0:3,b1:5,r0:4,r1:6
t0:2,t1:6,l0:6,l1:2,b0:2,b1:6,r0:6,r1:4
t0:2,t1:6,l0:5,l1:2,b0:2,b1:6,r0:6,r1:2
t0:2,t1:6,l0:3,l1:7,b0:2,b1:6,r0:5,r1:7
t0:2,t1:6,l0:3,l1:5,b0:2,b1:6,r0:5,r1:7
t0:2,t1:6,l0:3,l1:5,b0:2,b1:6,r0:5,r1:2
t0:2,t1:6,l0:3,l1:5,b0:2,b1:6,r0:3,r1:7
t0:2,t1:5,l0:4,l1:7,b0:2,b1:5,r0:6,r1:3
t0:2,t1:5,l0:4,l1:2,b0:2,b1:5,r0:6,r1:3
t0:2,t1:5,l0:4,l1:2,b0:2,b1:5,r0:6,r1:2
t0:2,t1:5,l0:2,l1:7,b0:2,b1:5,r0:6,r1:3
t0:2,t1:5,l0:2,l1:5,b0:2,b1:5,r0:6,r1:3
t0:2,t1:5,l0:2,l1:5,b0:2,b1:5,r0:6,r1:2
t0:2,t1:4,l0:5,l1:3,b0:2,b1:4,r0:5,r1:7
t0:2,t1:4,l0:5,l1:2,b0:2,b1:4,r0:5,r1:3
t0:2,t1:4,l0:3,l1:7,b0:2,b1:4,r0:5,r1:7
t0:2,t1:4,l0:3,l1:7,b0:2,b1:4,r0:5,r1:3
t0:2,t1:4,l0:2,l1:7,b0:2,b1:4,r0:5,r1:3
t0:1,t1:7,l0:6,l1:9,b0:1,b1:7,r0:7,r1:9
t0:1,t1:7,l0:5,l1:9,b0:1,b1:7,r0:7,r1:9
t0:1,t1:7,l0:5,l1:9,b0:1,b1:7,r0:6,r1:9
t0:1,t1:7,l0:4,l1:9,b0:1,b1:7,r0:7,r1:9
t0:1,t1:7,l0:4,l1:9,b0:1,b1:7,r0:6,r1:9
t0:1,t1:7,l0:2,l1:9,b0:1,b1:7,r0:6,r1:9
t0:1,t1:7,l0:2,l1:9,b0:1,b1:7,r0:5,r1:9
t0:1,t1:7,l0:2,l1:9,b0:1,b1:7,r0:4,r1:9
t0:1,t1:6,l0:6,l1:9,b0:1,b1:6,r0:7,r1:9
t0:1,t1:6,l0:5,l1:9,b0:1,b1:6,r0:7,r1:9
t0:1,t1:6,l0:5,l1:9,b0:1,b1:6,r0:6,r1:9
t0:1,t1:6,l0:3,l1:9,b0:1,b1:6,r0:7,r1:9
t0:1,t1:6,l0:3,l1:9,b0:1,b1:6,r0:5,r1:9
t0:1,t1:5,l0:6,l1:9,b0:1,b1:5,r0:7,r1:9
t0:1,t1:5,l0:4,l1:9,b0:1,b1:5,r0:7,r1:9
t0:1,t1:5,l0:4,l1:9,b0:1,b1:5,r0:6,r1:9
t0:1,t1:5,l0:2,l1:9,b0:1,b1:5,r0:6,r1:9
t0:1,t1:5,l0:2,l1:9,b0:1,b1:5,r0:4,r1:9
t0:1,t1:4,l0:5,l1:9,b0:1,b1:4,r0:7,r1:9
t0:1,t1:4,l0:3,l1:9,b0:1,b1:4,r0:7,r1:9
t0:1,t1:4,l0:3,l1:9,b0:1,b1:4,r0:5,r1:9
t0:1,t1:4,l0:2,l1:9,b0:1,b1:4,r0:5,r1:9
t0:1,t1:4,l0:2,l1:9,b0:1,b1:4,r0:3,r1:9
t0:1,t1:3,l0:4,l1:9,b0:1,b1:3,r0:6,r1:9
t0:1,t1:3,l0:3,l1:9,b0:1,b1:3,r0:4,r1:9
t0:1,t1:3,l0:2,l1:9,b0:1,b1:3,r0:6,r1:9
t0:1,t1:3,l0:2,l1:9,b0:1,b1:3,r0:4,r1:9
t0:1,t1:3,l0:2,l1:9,b0:1,b1:3,r0:3,r1:9
新ロジックだとtopとbottomが同じものをn4としていた。
例えば以下の例だと
t0:3,t1:5,l0:4,l1:2,b0:3,b1:5,r0:4,r1:6
topはt0:3,t1:5、bottomはb0:3,b1:5で1同じである。
でも180度回転させて同じになるにはleftとrightも同じでなくてはならないのを忘れてた。
例えばこんな感じのがn4になる
t0:3,t1:5,l0:4,l1:6,b0:3,b1:5,r0:4,r1:6
n4の判定にleft==rightも追加することにする。
}else if(bottomSide_0==topSide_0 && bottomSide_1==topSide_1){
printf("sym:1:t0:%d,t1:%d,l0:%d,l1:%d,b0:%d,b1:%d,r0:%d,r1:%d\n",topSide_0,topSide_1,leftSide_0,leftSide_1,bottomSide_0,bottomSide_1,rightSide_0,rightSide_1);
if(leftSide_0==rightSide_0&&leftSide_1==rightSide_1){
return 1;
}
return 2;
}else{
追加した結果n11まで数が合うようになった。
6.CPUR 再帰 バックトラック+ビットマップ
N: Total Unique hh:mm:ss.ms
4: 2 1 0.00
5: 10 2 0.00
6: 4 1 0.00
7: 40 6 0.00
8: 92 12 0.00
9: 352 46 0.00
10: 724 92 0.01
11: 2680 341 0.03
12: 14232 1792 0.11
13: 73792 9247 0.33
14: 365708 45785 1.06
15: 2279648 285153 3.49
n12から違うので調査したいと思う