======================================================================== WIN32 アプリケーション : meidai1 ========================================================================  2003年1月15日(水) 岡田好一  ヘキソミノの完全解を得るために設けられた「命題1」を解くためのスクリーンセーバーです。  ヘキソミノ(プラパズル No.600)の総組み合わせは、10^20〜10^25あると言われています。総当りでは到底解けそうも無いので、部分解に分解する手順の一つとして、命題1があります。 ● 命題1とは http://hexomino.hp.infoseek.co.jp/  完全解を目指しているdaichon氏により定義された部分解の一つです。  プラパズル No.600のデザインでは、中央上に1スペース分の「へそ」があります。ここから底辺に向かってピースを埋めてゆくと、スペースが左右に分かれるので、問題が解きやすくなるはずです。  簡単なプログラムで試してみると、それでも、10^12に達しようかと言う膨大な組み合わせがあるようです。つまり、現在の計算機とアルゴリズムでは数百日を費やしそうです。  そこで、スクリーンセーバーにして、暇なときに計算機に勝手に解かせることにしました。 ● 使い方  meidai1.scrを、他のスクリーンセーバーのプログラムも入っているフォルダ、 c:\WINDOWS\system\ Windows Meなどの場合 c:\WINDOWS\system32\ Windows XPなどの場合  に入れてください。meidai1スクリーンセーバーが選択できるようになります。  デスクトップでマウスの右ボタンをクリックし、ポップアップメニューからプロパティを選び、スクリーンセーバータグのウィンドウでmeidai1を選んでください。  削除は、meidai1.scrとともに、ファイル、 c:\WINDOWS\try7s.ini  も削除する必要があります。このファイルは私の作ったスクリーンセーバーの共用ですので、できれば、エディタ等で[meidai1]セクションのみを削除すると、他への影響はありません。 ● 表示について  スクリーンセーバーが動き出すと、画面が消去され、やがて、ヘキソミノ・ピースが数個縦に並んだ表示が左上から出現します。初期値では、25,000通りの解が出る毎に表示が追加されます。  最後の表示が記憶されていて、次回のスクリーンセーバーの初期配置として引き継がれます。 ● 途中経過のデータについて (バージョン1と非互換) c:\WINDOWS\try7s.ini  の中の、[meidai1]セクションに途中経過のデータがあります。 [meidai1] b=17,13800000;0121,5234,6i20,7533,8h10,9b33,a873,b011 i=100000  などとなっているはずです。「b=」の右側が途中経過です。「;」の左がそれまでの解の総数で、「,」の左は億以上の桁です。「;」の右は各ピースのようすで、「,」に区切られた4文字がそれぞれ、   ピースの縦位置   ピースの形状   ピースの向き   ピースの横位置  を表します。上記ですと、8つのピースが並んでいることになります。  「i=」の項目は、表示の頻度です。この項目が無い場合には、25,000通り毎に画面表示されます。上記のように「i=100000」の行がある場合は、十万通り毎に画面表示が更新されます。都合上、100,000,000を割り切る数を指定してください(でなくても動くことは動きますが)。指定する場合、現在のバージョンでは、このtry7s.iniファイルを直接エディタ等で書き換えることになっています。  25,000という値は、300MHz程度のCPUでも画面が適度に更新される値です。Pen4 3GHz等だと、多分目が回りますので、100000とか200000とかをご指定ください。 ● 改造自由です  ソースプログラムを添付しますので、ご自由に改造してください。何かアイデアが付け加わった場合(通信やファイルなど、独自の動作を加えた、画面構成が明らかに異なる、など)は、独自プログラムとして、私の許諾なしに配布していただいてかまいません。  本バージョンはフリーソフトです。手に入れた方が自由に再配布されてOKです。不特定多数の人が見られるWebページ等に掲載される場合は、事後でかまいませんので、お知らせください。  無保証です。利用者の責任でご利用ください。 ● バージョン2について  左右対称になるペアの片方の配置を計算しないようにしました。計算時間が約半分になります。「約」なのは、完全対称形が75種あるからです。また、左右対称のチェックの時間分がわずかに増えます。  ちなみに、バージョン1では、「へそ」の部分に6つの正方形が直線状に並んだピースがある場合の組み合わせ数は、1,462,972,508.通りと計算されます。バージョン2では731,486,271.通りとなります。素直に半分にならないのは、34通りの完全対称形が含まれるからです。 ● 開発履歴 ver 1.0 (2003-01-01) バグっていたらごめんね、バージョン ver 1.1 (2003-01-04) すぐに気づいた点を整理  初期化ルーチンのバグ修正。 ver 2.0 (2003-01-15) 対称を考慮  完全に対称のもの以外は、片方のみを計算。全体の計算時間が約半分になるはず。  v1.xとは途中経過データの互換性なし。 // end of lines