generated at
パズルで学ぶプログラミング
というが書けないかな
興味深い問題をサクっとプログラムで解いてるうちにプログラミング技術も学べるみたいな
ゲームパズルだけでプログラミング技術は学べるものだろうか?

学ぶべきこと
Hello World
ローン計算
3で割れたら、FizzBuzz
順列組合せ
関数の扱い
計算量
みたいなのをパズルシミュレーションで勉強する

背景
真面目に考えるよりプログラミングで問題を解く方が楽な場合がある 増井俊之
飛行機座席問題の答など、証明するよりプログラムでシミュレーションした方が速いかもしれない
「年利10%を10年続けるとどうなる?」とか、真面目に指数計算するよりもプログラミングした方が速いかもしれない
つるかめ算ですら方程式について考えなくても解ける
プログラミングしないと解けない問題も多い
逆正弦法則乱数網羅率など、シミュレーションでないと計算できない
前述のものでもちょっと面倒な条件が追加されたりすると計算では解けない
e.g. 「日利0.1%だけど3がつく日は0.2%になる」みたいなのは真面目に計算できない
飛行機座席問題2はシミュレーションでないと解けない
プログラミングしてはじめて納得する場合も多い
モンティ・ホール問題の場合など、考えたら間違えてしまう可能性すらある
算数数学でいろんな法則を習うが、聞いても「フーン」という感じだろう
プログラムを書いて値を確認すると「ナルホド」となって面白い
プログラミングの練習にもなるし数学的感覚も身につく
\sum n = {n(n+1) \over 2}なんていろんなnで試してみたい
プログラムを書いて数え上げてはじめてわかることもある

つまり一般的にプログラミングは様々な問題を解いたり納得したりするのに有用である
問題解決のプログラミングといった方が適切かもしれない
プログラマはそんなこと当然知ってるが、そうでない人はわからないのではないか?

問題
算数好きな人にしかウケないかも?
そういう人はすでにプログラミングぐらいできる
以外なテクニック、グラフィクスがないと駄目かな?

どういう話がわかりやすいだろう?
レシピ的な説明
順番に何かをやる話
総当たり的な説明
全部試せば答がわかるのはあたりまえだと思うだろう
繰り返すとどうなるかの説明
リボ払いとか
条件とか乱数とかもわかりやすい?
サイコロギャンブルみたいなやつ