※この記事は,ルネサンス以前に書かれた記事です.ルネサンス後に通用する場合は十分ご注意ください※
えと,命名者開発者(Holithy☆さんがただ命名しただけみたいに見えるので,訂正しておきます)から解法名に訂正が入ります.「次回パターン最大化法」から,「重み付け構成2乗法」へ変更になりました.「重み付け構成2乗法」略して「MC2乗法」でします.メイプルストーリーのプレイヤーの皆さんには,どこか馴染みやすい名前かと思います.
で,MC2乗法による解法を一挙公開します.これは,攻略ツールの公開ページにコメントを書いて下さってるHolithy☆さんが得た解法です.次郎が自分であみ出したものではございません.そこんとこ,重要ですのでお間違えの無いようにご注意ください.コメントのやり取りを眺めると,次郎が色々助言しているかのように見えるかもしれませんが,本質的な部分はほぼHolithy☆さんの独自のアイデアで完成しています.
また,このMC2乗法を搭載する攻略ツールを作成するわけですが,こちらの名称も変更します.
旧名称:賢者の噴水は俺に任せろ
新名称:賢者の噴水は俺たちに任せろ
「俺」が「俺たち」に変わりました.これは,Holithy☆さんと次郎で「俺たち」です.二人で力を合わせましたという意思表示です.ツールのアイコンも変更します.Holithy☆さんの解法を搭載していますということで,vHの文字を入れました.Version Holithy☆の意味です.
で,解法の表の見方を説明します.Holithy☆さんが作ってくれた表が実に完璧で,次郎がこれまで作ってきた表よりもずっと実用的です.ちょっととっつき難い面もありますので,少し手を加えてみました.
表の一番左の列にあるhで始まる数字の列が,正邪の彫刻が教えてくれるヒントです.数字が二個ずつの組になっています.二つの数字は,正しいと言っている者の数と,見当たらないと言っている者の数です(間違いだと言っている者の数は無視して下さい.なんで無視して良いかは前回の記事で確認して下さい).
初手は「勲勲書食」です.これは固定です.
初手を置いて返ってきたヒントが「1名が正しい,1名が見当たらない」,つまり,「11」であったら,この表から「h11」を探します.順番に並んでいるので見つけやすいと思いますが,「h11」の行には「勲書勲酒」とあります.これが次に置く手です.
初手「勲勲書食」の結果が「11」で,二手目に「勲書勲酒」を置きました.これでCLEARする可能性もあります.が,CLEAR出来なかった場合,正邪の彫刻からヒントが出ます.そのヒントが「1名が正しい,2名が見当たらない」,つまり,「12」だった場合,「h11-12」を探します.初手のヒントが「11」で,二手目のヒントが「12」なので,「h11-12」です.「h11-12」の行にある「勲食食書」が次の手,第三手目です.
これをCLEARになるまで繰り返します.ごくわずかな例外を除いて,ほぼ四手以内でCLEARできます.
このまとめ方が完璧だと次郎が絶賛しているのは,このままプログラムが書けるからです.つまり,この表の内容をハッシュテーブルに載せておけば,これまでのヒントの履歴(h11-12とか,h01-01-31など)を記録しておけば,次の手を瞬時に呼び出すことが可能なのです.実装がすごく楽になります.
次郎法V1の実装では,「現在,勲書のツーペアが確定した後半第二手で,後半第一手が○○なので次の手はこれ」ということを,条件分岐を並べていました.Holithy☆さんのプログラムと比べると,小学生の作文のようなプログラムです.が,それでも良かったのです.次郎法V1は,手数が多くかかりますが,パターンを相似形でまとめることができたので,実際の分岐はそう多くなく,かえって分かり易いコードになっていたのです.
「相似形でまとめる」というのは,ツーペアは36通りありますが,「AABB」「ABAB」「ABBA」の三つ(と,裏表)とまとめて考える(ことができる)ということです.「勲勲書書」も「酒酒勲勲」も同じ「AABB」の解法で解けるのです.144通りあるワンペアも「AABC」「BCAA」「ABAC」「CABA」「ABCA」「BAAC」の六つ(と裏表)で解くことができたのです.この強力な圧縮が次郎法V1の最大の強みで,説明を楽に進めることができました(圧縮の効かないブタの説明は分かり難かったでしょう).
ちょっと脱線してしまいましたが,Holithy☆さん作のMC2乗法を紹介します.第一行目は初手です.初手なのでヒントの履歴は何もありません.
ヒントの履歴 | 次の手 | 通番号 |
![]() ![]() ![]() ![]() |
N007 | |
h00 | ![]() ![]() ![]() ![]() |
N097 |
h00-20 | ![]() ![]() ![]() ![]() |
N145 |
h01 | ![]() ![]() ![]() ![]() |
N089 |
h01-01 | ![]() ![]() ![]() ![]() |
N162 |
h01-01-31 | ![]() ![]() ![]() ![]() |
N178 |
h01-01-31-20 | ![]() ![]() ![]() ![]() |
N226 |
h01-10 | ![]() ![]() ![]() ![]() |
N098 |
h01-10-20 | ![]() ![]() ![]() ![]() |
N146 |
h01-11 | ![]() ![]() ![]() ![]() |
N100 |
h01-11-20 | ![]() ![]() ![]() ![]() |
N148 |
h01-12 | ![]() ![]() ![]() ![]() |
N177 |
h01-12-20 | ![]() ![]() ![]() ![]() |
N225 |
h01-12-31 | ![]() ![]() ![]() ![]() |
N161 |
h01-21 | ![]() ![]() ![]() ![]() |
N109 |
h01-21-20 | ![]() ![]() ![]() ![]() |
N157 |
h01-22 | ![]() ![]() ![]() ![]() |
N113 |
h01-22-20 | ![]() ![]() ![]() ![]() |
N209 |
h01-31 | ![]() ![]() ![]() ![]() |
N105 |
h01-31-20 | ![]() ![]() ![]() ![]() |
N153 |
h01-31-21 | ![]() ![]() ![]() ![]() |
N217 |
h01-31-22 | ![]() ![]() ![]() ![]() |
N081 |
h01-31-31 | ![]() ![]() ![]() ![]() |
N121 |
h02 | ![]() ![]() ![]() ![]() |
N112 |
h02-00 | ![]() ![]() ![]() ![]() |
N250 |
h02-01 | ![]() ![]() ![]() ![]() |
N186 |
h02-01-21 | ![]() ![]() ![]() ![]() |
N218 |
h02-01-22 | ![]() ![]() ![]() ![]() |
N242 |
h02-01-22-21 | ![]() ![]() ![]() ![]() |
N249 |
h02-02 | ![]() ![]() ![]() ![]() |
N185 |
h02-02-02 | ![]() ![]() ![]() ![]() |
N210 |
h02-02-22 | ![]() ![]() ![]() ![]() |
N154 |
h02-02-24 | ![]() ![]() ![]() ![]() |
N241 |
h02-10 | ![]() ![]() ![]() ![]() |
N190 |
h02-10-00 | ![]() ![]() ![]() ![]() |
N220 |
h02-11 | ![]() ![]() ![]() ![]() |
N122 |
h02-11-02 | ![]() ![]() ![]() ![]() |
N212 |
h02-11-02-20 | ![]() ![]() ![]() ![]() |
N221 |
h02-11-10 | ![]() ![]() ![]() ![]() |
N158 |
h02-11-11 | ![]() ![]() ![]() ![]() |
N156 |
h02-11-12 | ![]() ![]() ![]() ![]() |
N180 |
h02-11-12-20 | ![]() ![]() ![]() ![]() |
N189 |
h02-11-21 | ![]() ![]() ![]() ![]() |
N234 |
h02-12 | ![]() ![]() ![]() ![]() |
N114 |
h02-12-02 | ![]() ![]() ![]() ![]() |
N233 |
h02-12-13 | ![]() ![]() ![]() ![]() |
N170 |
h02-12-22 | ![]() ![]() ![]() ![]() |
N090 |
h02-13 | ![]() ![]() ![]() ![]() |
N082 |
h02-13-03 | ![]() ![]() ![]() ![]() |
N169 |
h02-20 | ![]() ![]() ![]() ![]() |
N124 |
h02-20-00 | ![]() ![]() ![]() ![]() |
N238 |
h02-20-10 | ![]() ![]() ![]() ![]() |
N160 |
h02-21 | ![]() ![]() ![]() ![]() |
N116 |
h02-21-01 | ![]() ![]() ![]() ![]() |
N237 |
h02-21-02 | ![]() ![]() ![]() ![]() |
N174 |
h02-21-20 | ![]() ![]() ![]() ![]() |
N125 |
h02-21-21 | ![]() ![]() ![]() ![]() |
N228 |
h02-21-22 | ![]() ![]() ![]() ![]() |
N092 |
h02-22 | ![]() ![]() ![]() ![]() |
N084 |
h02-22-02 | ![]() ![]() ![]() ![]() |
N173 |
h02-22-12 | ![]() ![]() ![]() ![]() |
N106 |
h02-22-20 | ![]() ![]() ![]() ![]() |
N093 |
h02-22-22 | ![]() ![]() ![]() ![]() |
N164 |
h02-31 | ![]() ![]() ![]() ![]() |
N108 |
h02-31-21 | ![]() ![]() ![]() ![]() |
N110 |
h03 | ![]() ![]() ![]() ![]() |
N128 |
h03-11 | ![]() ![]() ![]() ![]() |
N222 |
h03-12 | ![]() ![]() ![]() ![]() |
N236 |
h03-13 | ![]() ![]() ![]() ![]() |
N172 |
h03-20 | ![]() ![]() ![]() ![]() |
N224 |
h03-20-20 | ![]() ![]() ![]() ![]() |
N254 |
h03-21 | ![]() ![]() ![]() ![]() |
N240 |
h03-21-20 | ![]() ![]() ![]() ![]() |
N252 |
h03-21-21 | ![]() ![]() ![]() ![]() |
N244 |
h03-21-21-20 | ![]() ![]() ![]() ![]() |
N253 |
h03-22 | ![]() ![]() ![]() ![]() |
N094 |
h03-22-03 | ![]() ![]() ![]() ![]() |
N188 |
h03-22-13 | ![]() ![]() ![]() ![]() |
N176 |
h03-31 | ![]() ![]() ![]() ![]() |
N192 |
h03-31-22 | ![]() ![]() ![]() ![]() |
N096 |
h03-31-22-20 | ![]() ![]() ![]() ![]() |
N126 |
h04 | ![]() ![]() ![]() ![]() |
N256 |
h10 | ![]() ![]() ![]() ![]() |
N025 |
h10-00 | ![]() ![]() ![]() ![]() |
N130 |
h10-10 | ![]() ![]() ![]() ![]() |
N034 |
h10-20 | ![]() ![]() ![]() ![]() |
N073 |
h11 | ![]() ![]() ![]() ![]() |
N020 |
h11-00 | ![]() ![]() ![]() ![]() |
N077 |
h11-01 | ![]() ![]() ![]() ![]() |
N141 |
h11-01-11 | ![]() ![]() ![]() ![]() |
N202 |
h11-01-11-10 | ![]() ![]() ![]() ![]() |
N229 |
h11-01-20 | ![]() ![]() ![]() ![]() |
N201 |
h11-01-21 | ![]() ![]() ![]() ![]() |
N181 |
h11-01-31 | ![]() ![]() ![]() ![]() |
N142 |
h11-02 | ![]() ![]() ![]() ![]() |
N074 |
h11-02-01 | ![]() ![]() ![]() ![]() |
N165 |
h11-02-10 | ![]() ![]() ![]() ![]() |
N101 |
h11-02-22 | ![]() ![]() ![]() ![]() |
N137 |
h11-02-31 | ![]() ![]() ![]() ![]() |
N138 |
h11-10 | ![]() ![]() ![]() ![]() |
N194 |
h11-11 | ![]() ![]() ![]() ![]() |
N045 |
h11-11-01 | ![]() ![]() ![]() ![]() |
N076 |
h11-11-01-10 | ![]() ![]() ![]() ![]() |
N115 |
h11-11-02 | ![]() ![]() ![]() ![]() |
N066 |
h11-11-11 | ![]() ![]() ![]() ![]() |
N058 |
h11-11-12 | ![]() ![]() ![]() ![]() |
N065 |
h11-11-20 | ![]() ![]() ![]() ![]() |
N057 |
h11-11-31 | ![]() ![]() ![]() ![]() |
N046 |
h11-12 | ![]() ![]() ![]() ![]() |
N042 |
h11-12-01 | ![]() ![]() ![]() ![]() |
N149 |
h11-12-02 | ![]() ![]() ![]() ![]() |
N129 |
h11-12-10 | ![]() ![]() ![]() ![]() |
N099 |
h11-12-31 | ![]() ![]() ![]() ![]() |
N041 |
h11-20 | ![]() ![]() ![]() ![]() |
N029 |
h11-20-00 | ![]() ![]() ![]() ![]() |
N068 |
h11-20-10 | ![]() ![]() ![]() ![]() |
N050 |
h11-21 | ![]() ![]() ![]() ![]() |
N132 |
h11-21-11 | ![]() ![]() ![]() ![]() |
N211 |
h11-22 | ![]() ![]() ![]() ![]() |
N026 |
h11-22-10 | ![]() ![]() ![]() ![]() |
N083 |
h11-22-11 | ![]() ![]() ![]() ![]() |
N147 |
h11-22-12 | ![]() ![]() ![]() ![]() |
N033 |
h11-31 | ![]() ![]() ![]() ![]() |
N036 |
h11-31-21 | ![]() ![]() ![]() ![]() |
N028 |
h11-31-22 | ![]() ![]() ![]() ![]() |
N017 |
h11-31-22-31 | ![]() ![]() ![]() ![]() |
N018 |
h12 | ![]() ![]() ![]() ![]() |
N032 |
h12-00 | ![]() ![]() ![]() ![]() |
N245 |
h12-01 | ![]() ![]() ![]() ![]() |
N117 |
h12-01-12 | ![]() ![]() ![]() ![]() |
N243 |
h12-02 | ![]() ![]() ![]() ![]() |
N179 |
h12-02-02 | ![]() ![]() ![]() ![]() |
N230 |
h12-02-12 | ![]() ![]() ![]() ![]() |
N193 |
h12-02-20 | ![]() ![]() ![]() ![]() |
N227 |
h12-02-21 | ![]() ![]() ![]() ![]() |
N123 |
h12-02-22 | ![]() ![]() ![]() ![]() |
N182 |
h12-03 | ![]() ![]() ![]() ![]() |
N102 |
h12-03-13 | ![]() ![]() ![]() ![]() |
N163 |
h12-03-22 | ![]() ![]() ![]() ![]() |
N107 |
h12-03-31 | ![]() ![]() ![]() ![]() |
N166 |
h12-10 | ![]() ![]() ![]() ![]() |
N206 |
h12-11 | ![]() ![]() ![]() ![]() |
N127 |
h12-11-00 | ![]() ![]() ![]() ![]() |
N232 |
h12-11-01 | ![]() ![]() ![]() ![]() |
N204 |
h12-11-02 | ![]() ![]() ![]() ![]() |
N213 |
h12-11-02-12 | ![]() ![]() ![]() ![]() |
N196 |
h12-11-10 | ![]() ![]() ![]() ![]() |
N184 |
h12-11-12 | ![]() ![]() ![]() ![]() |
N205 |
h12-11-22 | ![]() ![]() ![]() ![]() |
N078 |
h12-12 | ![]() ![]() ![]() ![]() |
N111 |
h12-12-01 | ![]() ![]() ![]() ![]() |
N140 |
h12-12-03 | ![]() ![]() ![]() ![]() |
N049 |
h12-12-10 | ![]() ![]() ![]() ![]() |
N168 |
h12-12-10-00 | ![]() ![]() ![]() ![]() |
N219 |
h12-12-13 | ![]() ![]() ![]() ![]() |
N085 |
h12-12-21 | ![]() ![]() ![]() ![]() |
N104 |
h12-13 | ![]() ![]() ![]() ![]() |
N150 |
h12-13-11 | ![]() ![]() ![]() ![]() |
N091 |
h12-13-22 | ![]() ![]() ![]() ![]() |
N155 |
h12-20 | ![]() ![]() ![]() ![]() |
N062 |
h12-20-10 | ![]() ![]() ![]() ![]() |
N080 |
h12-21 | ![]() ![]() ![]() ![]() |
N060 |
h12-21-01 | ![]() ![]() ![]() ![]() |
N223 |
h12-21-10 | ![]() ![]() ![]() ![]() |
N144 |
h12-21-21 | ![]() ![]() ![]() ![]() |
N061 |
h12-21-31 | ![]() ![]() ![]() ![]() |
N052 |
h12-22 | ![]() ![]() ![]() ![]() |
N095 |
h12-22-02 | ![]() ![]() ![]() ![]() |
N044 |
h12-22-10 | ![]() ![]() ![]() ![]() |
N152 |
h12-22-31 | ![]() ![]() ![]() ![]() |
N159 |
h12-31 | ![]() ![]() ![]() ![]() |
N030 |
h12-31-22 | ![]() ![]() ![]() ![]() |
N048 |
h13 | ![]() ![]() ![]() ![]() |
N088 |
h13-03 | ![]() ![]() ![]() ![]() |
N175 |
h13-03-11 | ![]() ![]() ![]() ![]() |
N251 |
h13-03-20 | ![]() ![]() ![]() ![]() |
N187 |
h13-03-20-20 | ![]() ![]() ![]() ![]() |
N235 |
h13-03-22 | ![]() ![]() ![]() ![]() |
N255 |
h13-03-31 | ![]() ![]() ![]() ![]() |
N191 |
h13-03-31-20 | ![]() ![]() ![]() ![]() |
N239 |
h13-04 | ![]() ![]() ![]() ![]() |
N171 |
h13-11 | ![]() ![]() ![]() ![]() |
N246 |
h13-13 | ![]() ![]() ![]() ![]() |
N064 |
h13-13-20 | ![]() ![]() ![]() ![]() |
N208 |
h13-20 | ![]() ![]() ![]() ![]() |
N118 |
h13-20-20 | ![]() ![]() ![]() ![]() |
N214 |
h13-22 | ![]() ![]() ![]() ![]() |
N248 |
h13-31 | ![]() ![]() ![]() ![]() |
N120 |
h13-31-20 | ![]() ![]() ![]() ![]() |
N216 |
h13-31-22 | ![]() ![]() ![]() ![]() |
N086 |
h20 | ![]() ![]() ![]() ![]() |
N010 |
h20-10 | ![]() ![]() ![]() ![]() |
N019 |
h20-10-00 | ![]() ![]() ![]() ![]() |
N133 |
h20-10-10 | ![]() ![]() ![]() ![]() |
N037 |
h20-10-20 | ![]() ![]() ![]() ![]() |
N067 |
h21 | ![]() ![]() ![]() ![]() |
N012 |
h21-10 | ![]() ![]() ![]() ![]() |
N051 |
h21-10-20 | ![]() ![]() ![]() ![]() |
N195 |
h21-11 | ![]() ![]() ![]() ![]() |
N053 |
h21-11-01 | ![]() ![]() ![]() ![]() |
N079 |
h21-11-02 | ![]() ![]() ![]() ![]() |
N131 |
h21-11-11 | ![]() ![]() ![]() ![]() |
N031 |
h21-11-12 | ![]() ![]() ![]() ![]() |
N035 |
h21-11-20 | ![]() ![]() ![]() ![]() |
N197 |
h21-12 | ![]() ![]() ![]() ![]() |
N038 |
h21-12-11 | ![]() ![]() ![]() ![]() |
N069 |
h21-12-20 | ![]() ![]() ![]() ![]() |
N134 |
h21-12-21 | ![]() ![]() ![]() ![]() |
N021 |
h21-21 | ![]() ![]() ![]() ![]() |
N014 |
h21-21-11 | ![]() ![]() ![]() ![]() |
N040 |
h21-21-11-20 | ![]() ![]() ![]() ![]() |
N136 |
h21-22 | ![]() ![]() ![]() ![]() |
N027 |
h21-22-12 | ![]() ![]() ![]() ![]() |
N002 |
h21-22-20 | ![]() ![]() ![]() ![]() |
N075 |
h21-31 | ![]() ![]() ![]() ![]() |
N009 |
h22 | ![]() ![]() ![]() ![]() |
N024 |
h22-02 | ![]() ![]() ![]() ![]() |
N143 |
h22-02-20 | ![]() ![]() ![]() ![]() |
N203 |
h22-02-31 | ![]() ![]() ![]() ![]() |
N207 |
h22-03 | ![]() ![]() ![]() ![]() |
N139 |
h22-10 | ![]() ![]() ![]() ![]() |
N198 |
h22-11 | ![]() ![]() ![]() ![]() |
N119 |
h22-11-22 | ![]() ![]() ![]() ![]() |
N070 |
h22-12 | ![]() ![]() ![]() ![]() |
N047 |
h22-12-11 | ![]() ![]() ![]() ![]() |
N183 |
h22-12-12 | ![]() ![]() ![]() ![]() |
N247 |
h22-12-20 | ![]() ![]() ![]() ![]() |
N059 |
h22-12-21 | ![]() ![]() ![]() ![]() |
N231 |
h22-12-22 | ![]() ![]() ![]() ![]() |
N013 |
h22-12-24 | ![]() ![]() ![]() ![]() |
N103 |
h22-12-31 | ![]() ![]() ![]() ![]() |
N063 |
h22-13 | ![]() ![]() ![]() ![]() |
N043 |
h22-13-13 | ![]() ![]() ![]() ![]() |
N001 |
h22-13-21 | ![]() ![]() ![]() ![]() |
N167 |
h22-20 | ![]() ![]() ![]() ![]() |
N054 |
h22-20-10 | ![]() ![]() ![]() ![]() |
N072 |
h22-21 | ![]() ![]() ![]() ![]() |
N200 |
h22-21-22 | ![]() ![]() ![]() ![]() |
N215 |
h22-22 | ![]() ![]() ![]() ![]() |
N004 |
h22-22-04 | ![]() ![]() ![]() ![]() |
N087 |
h22-22-04-31 | ![]() ![]() ![]() ![]() |
N151 |
h22-22-31 | ![]() ![]() ![]() ![]() |
N016 |
h22-31 | ![]() ![]() ![]() ![]() |
N056 |
h22-31-22 | ![]() ![]() ![]() ![]() |
N022 |
h31 | ![]() ![]() ![]() ![]() |
N023 |
h31-20 | ![]() ![]() ![]() ![]() |
N071 |
h31-21 | ![]() ![]() ![]() ![]() |
N135 |
h31-21-22 | ![]() ![]() ![]() ![]() |
N006 |
h31-21-31 | ![]() ![]() ![]() ![]() |
N199 |
h31-22 | ![]() ![]() ![]() ![]() |
N008 |
h31-22-21 | ![]() ![]() ![]() ![]() |
N015 |
h31-22-22 | ![]() ![]() ![]() ![]() |
N003 |
h31-22-22-31 | ![]() ![]() ![]() ![]() |
N011 |
h31-22-31 | ![]() ![]() ![]() ![]() |
N005 |
h31-31 | ![]() ![]() ![]() ![]() |
N039 |
h31-31-31 | ![]() ![]() ![]() ![]() |
N055 |