暇つぶし2chat TECH
- 暇つぶし2ch625:デフォルトの名無しさん (ワッチョイ 7bdc-3OfB)
17/02/14 23:35:48.88 +J5Ev49B0.net
>>611
こういう問題は手続きじゃなくてトップダウンで関数型的に考えると機械的に解ける
解 = 数独を解く(初期状態, []).FirstOrDefault();
数独を解く = (状態, 探索済) => 解けている(状態) ? [状態] : 次の候補(状態, 探索済).SelectMany(候補 => 数独を解く(候補, 探索済 + 状態)).First();
次の候補 = (状態, 探索済) => 数字を適当に1つ置いてみるときの全ての置き方(状態).Where(状態 => 矛盾してない(状態) && 探索済.含まない(状態));
数字を適当に1つ置いてみるときの全ての置き方 = 状態 => …
こんな感じで大雑把なところから細部を詰めていくの
具体的な動作をイメージしづらいかもしれないけど、結局やってることは ID: 8xZyzg4v0 と同じ


次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch