暇つぶし2chat TECH - 暇つぶし2ch■コピペモード□スレを通常表示□オプションモード□このスレッドのURL■項目テキスト624:デフォルトの名無しさん (ワッチョイ 7642-LB0c) 17/02/14 23:13:26.80 8xZyzg4v0.net >>611 別に実装は再起じゃなくても問題ないよ アルゴリズムが理解できれば普通にループと分岐だけで組める 625:デフォルトの名無しさん (ワッチョイ 7bdc-3OfB) 17/02/14 23:35:48.88 +J5Ev49B0.net >>611 こういう問題は手続きじゃなくてトップダウンで関数型的に考えると機械的に解ける 解 = 数独を解く(初期状態, []).FirstOrDefault(); 数独を解く = (状態, 探索済) => 解けている(状態) ? [状態] : 次の候補(状態, 探索済).SelectMany(候補 => 数独を解く(候補, 探索済 + 状態)).First(); 次の候補 = (状態, 探索済) => 数字を適当に1つ置いてみるときの全ての置き方(状態).Where(状態 => 矛盾してない(状態) && 探索済.含まない(状態)); 数字を適当に1つ置いてみるときの全ての置き方 = 状態 => … こんな感じで大雑把なところから細部を詰めていくの 具体的な動作をイメージしづらいかもしれないけど、結局やってることは ID: 8xZyzg4v0 と同じ 次ページ最新レス表示レスジャンプ類似スレ一覧スレッドの検索話題のニュースおまかせリストオプションしおりを挟むスレッドに書込スレッドの一覧暇つぶし2ch