2011年10月23日日曜日

Ranking List

   現在使っている数独のレベル表示
      26 Stratage Levels  presented by Ryuzen ; Numberplace Ranking Program

① Beginner         B(1)

② Very Easy       +R(2)、C(3)

③ Easy          + M(4)

④ Cute          +V(5)

⑤ Sweet         +W(6)

⑥ Lovely         +Q(7)

⑦ Smart         +G(8)

⑧ Ladybird       +v(31),w(32)

⑨ Pleasant                    +q(33)

⑩ Comfort       +g(34)

⑪ Honeybee      +P(9), +Φ(10) +Ξ(13)

⑫ Healthy        +p(35) +φ(36) +ξ(39)

⑬ Joyful         +S(12) +K(11) +s(38) +k(37)

⑭ Satisfy         +Y(17) +y(42)

⑮ Dream         +H(14) +Ω(15) +h(40) +ω(41)

(16) Dragonfly       +L(18) +T(19)

(17) Beetle         +U(20) +u(45)

(18) Thunder        +l(43) +t(44)

(19) Nightmare       +N(21) +O(22) +J(23)

(20) Pain          +n(46) +o(47) +j(48)

(21) Fear          +F(49) +Z(25) +I(26)

(22) Death         +f(49) +z(50)  +i(51)

(23) UFS          +Γ

(24) Birdy          A

(25) Eargle

(26) Albatoross

 
   

2011年10月21日金曜日

A search memorandum (3)

 numk=1 の a0 の試行が終了すると、次の段階へと移る。

 numk=2 になったとき、klevel=1  であれば、  a0 で破綻、逆に b0 は決まり。
              klevel=2  であれば、 a0   b0   ともに健全、 b0 で試行。

 a0 で破綻の場合、klevel=1 であるので、まだ新しい候補 a1、 b1 は読み込まれていないので、当然 a1="" である。

 この時、 b0 は決まりであるので、 Sheet  1 のDIAGRAM に b0 を代入、これを元の問題とするために、次の 4つのことをする。

 ① b0 の入った問題を新しい出発点とするため、 transfer_A_to_C  で C に移す。
 ② numk=1 に戻す。
 ③ Sheet 9 の D25:K25 の候補の数字を Erase する。
 ④ これまで、求まった解の数 numa をつなげる。ippatsu  の contrepeat に返る。変わっていないのは、 klevel だけであり、今後の仮定回数にプラスされる。

 klevel=2 になっている場合、 a0 がまだ生きている。したがって b0 の試行を行う。
 klevel=2、 numk=2 の場合、a0 b0が残っており、次のステップ numk=3 に進む。

  
 

2011年10月20日木曜日

A search memorandum (2)

new_class_search に klevel=1, numk=1 で入った時、まづ a0 を用いて計算を開始する。numk=numk+1 で numk=2 にして、 ippatsu にもどり、探索計算を行う。

その結果は次の 3ケースに分かれる。

① a0 の仮定だけで、msd を実施、final_answer_check において、 msg="Conouer " となった場合。唯一解の場合には、exit sub とする。

② a0 の仮定で破綻した場合。can ( i, 5)=0  となる場合で、stopflag="stop" にする。この後、新しい候補を求めないで、 klevel=1  のまま new_class_search に戻る。マクロの中での判定は、stopflag でもよいが、次の候補は読み込まれていない。つまり a1=""  であることがわかる。

③ a0 の仮定ではまだ、決着がつかない場合。もう一度の break though をはかる。 klevel=2  にして、次の候補、 a1, b1 を Sheet 9 に書き込む。(この段階で、まだ b0 の試行を行っていないことに注目。)

2011年10月19日水曜日

A search memorandum (1)

A search について、メモしよう。

最初に使用する用語の説明

① 打開 break through    /// klevel
    候補の呼び出し回数を表す指数

② 破綻 failure         /// stopflag
   間違った候補の数字を仮定すると破綻をきたす。このチェックは count_kosuu で行う。セルのもつ候補がない時、明らかに破綻である。 stopflag="stop"  とする。

③ 征服 conquer    /// msg="Conquer"
   final_answer_check において、すべての条件を満足すると、 msg="Conquer" となる。唯一解の場合には、ここでとどめてもよい。複数解の場合には続ける。

④ 試行 trial      ///  numk
  仮定した数字を用いて解析を進める。numk=2^6=64 で次の階層に入る。ただし、破綻をきたした段階で、numk を元の階層に戻す。

 さて、klevel=0, numk=1 で始まる探索の旅であるが、 fmid と msd で取りつくしても、conquer に至らぬとき、万策尽きて A search に突入する。

 まず output_two_candidate により、二択の候補を Sheet 9  の D25:K25 に書き込む。

 簡単のため、 a0 , b0 でもって説明する。