NQueen日記 2022/08/17

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から違うので調査したいと思う

書籍の紹介

NQueen日記 2022/08/18

NQueen日記 2022/08/18

NQueen日記 2022/08/12

NQueen日記 2022/08/12