グラフや幾何学の問題や、記述に関するメタ的な問題以外の、今までに無い種類の問題について考察する。
制約については【随時更新】解答に必要な機能まとめ - ニート歴10年からの数学日記を使う、必要になり次第付け加えていく。
『貯金箱をあけると、1円玉、5円玉、10円玉ばかりで合計101枚出てきました。お母さんに、1円玉10枚を10円玉1枚と交かんしていってもらうと、1円玉をすべて交かんすることができて、合計の枚数は65枚になりました。1円玉は、はじめに何枚ありましたか。』
集合論の制約じゃない問題とは、問題文の中に手順がある問題かもしれない。
人間の思考では、スタートとゴールとその間のステップ(の特に選択肢の種類、今回は違うが)を明確化して、今回は1ステップごとに9枚減ることに着目する。
多分、どう制約を与えることで答えに達するかという話で、ゴールの制約が合計の枚数なので、ステップの制約も合計の枚数で解釈するのが良いということなのではないか。
101-65=36で、これは4ステップ分なので、1ステップごとに1円玉は10枚減るので、答えは40枚ということになる。
少しずつ考察を深めていきたい。
『片面が白色で片面が黒色のカードが6枚あり、今、図1のように6枚ともすべて白を上にして並べてあります。この6枚のカードをすべて図2のように黒を上にしたいと思います。
ただし、1回につきかならず5枚のカードをめくらなければいけません。図2のようにすべてを黒にするには、もっとも少ない場合で何回かかりますか。
(図1)白白白白白白 → (図2)黒黒黒黒黒黒』
この問題は後戻りさえしなければ、そのまま答えまで行き着く。ただ他の選択肢がある場合も理論上は想定されるはずで、そういうゲームの問題についてどう考えるべきかというのは今は分からない。こういう問題こそプログラミング向きな気もする。
『下のように9つの重さのちがうダンボール箱がA、B、Cの3つの家にあります。これをAの家には15kg、Bの家には30kg、Cの家には45kgになるようにトラックを使って移したいと思います。ただしトラックは一度に2こまでダンボール箱しか運べませんし、たった1まわりしかできません。Aの家からスタートするとして、○の中に移すダンボール箱の重さを書き入れなさい。
(図)A(8, 9, 13) → ○○ → B(3, 5, 7, 15) → ○○ → C(12, 18) → ○○ → A』
「制約の優先順位」とこの移動の順番は違う。何が違うかというと、例えば制約の優先順位だと、xの値が最大化するような組み合わせの一覧があって、その状態が変わらないままyの値が最小化するような組み合わせに絞り込む、という流れになる。対してこれは状態自体が変わっていって、計算量がどんどん増えていくので、これは制約の優先順位では無い。
『B[3, 5, 7, 15]の中にA[8, 9, 13]からカブリ無しで2個以下 → C[12, 18]の中にBからカブリ無しで2個以下 → Aの中にCからカブリ無しで2個以下』という流れになるわけだが、これはlispのような関数プログラミングのようにも記述できるのかもしれない、そちらの方がより制約っぽく記述できていると言えばできているのかもしれない、がおそらく計算量自体は変わらない。
人間の思考の場合は、Aに着目して、8と残り全部2個以下・9と残り全部2個以下・13と残り全部2個以下で考えて、8と7の組み合わせを弾き出す。9と13をBに運んで、Cに運んでいくのは7は決定として、残り全部を足したら45なんで15が決定。でAに7を運んで終わり、という流れになる。この計算量の減らし方をどう一般化するか(そしてもしかしたら未来においては自動化するか)だろうな。
『8つの皿にそれぞれ、9、17、24、28、30、31、33、44個のアメがのっています。まず一郎が1つの皿をアメごと取りました。そのあと、二郎、三郎、四郎の3人が同じようにいくつかずつ皿をとり、皿は全部なくなりました。調べてみると二郎と三郎のアメの数は同じで、四郎の2倍の数でした。
最初に一郎の取った皿は何個のアメがのっていた皿ですか。』
『[一郎]の中に[9, 17, 24, 28, 30, 31, 33, 44]からカブり無しで1個 → [二郎]or[三郎]or[四郎]の中に[残り]からカブリ無しで7個 → 二郎 = 三郎 = 2四郎』。後ろの2つの条件は並列でも良いかもしれない。一郎は1個という条件を加えれれば、もっと並列的になる。最後の2つの条件だけを実行して残った1つを見るというのもアリ。
人間の思考の場合は、最後の条件からして、1つ取った後の全体が5四郎であり、更にはxを整数として5xであることを読み取り、最初のを足し合わせてそこから引いたら5の倍数になるような数字を探す。
『ある本をたろう君は1日目35頁、2日目40頁、3日目45頁と5頁ずつ増やして読んでいったら読み終わった日は35頁ですみました。同じ本を花子さんは1日目45頁、2日目50頁、3日目55頁と5頁ずつ増やして読んでいったら読み終わった日は40頁ですみました。この本は何頁の本ですか。』
人間の思考の場合は、たろう君と花子さんに何らかの共通性を持たせるために、花子さんの45頁スタートを基準に考えてみると、たろう君が35+40+35=110で、花子さんが余分な40ページで、110-40=70で、おそらく花子さんはたろう君より70頁分余分に必要になるはず。この70ページを2日に分けようとしてもルール上35+40とかになるんでできなくて、4日で初めて10+15+20+25でできるがスタートが10で無理なんで、この70ページは1日分だと分かる。で花子さんの一日の頁が70になるまで足していって、最後に40頁加えるということになる。