読者です 読者をやめる 読者になる 読者になる

ゆらのふなびと

競プロ, Python, C++

脳みそが喜んでる。

 

エレガントな問題解決 ―柔軟な発想を引き出すセンスと技

エレガントな問題解決 ―柔軟な発想を引き出すセンスと技

 

 

 図書館でこの本を見つけて手に取ってみたのだが、面白くて3時間くらい没頭してしまった。この本で言う「問題解決」とは数学的なもので、パズル的要素があったり、「どう説明したらいいの?」と思ったりする問題が多い。たとえばこんな問題。

 

1.5メートルの剣を列車に持ち込みたいが、1辺の寸法が1メートルを超える物は手荷物としても荷物としても認められない。どうすればいい?

 

 正方形の対角線に入れればいいだろうと思ったのだが、うまくいかない。正方形の対角線は √2=1.414…だから入りきらないのだ。

 式を立てて領域を描くなんてことまでしたが、そこではっと気づいた。平面がだめなら空間だ! 立方体なら対角線は √3=1.732…で条件を満たす。

 

 気づいてみれば簡単なことだったが、「考えている最中」というのは意外と自分の視野の狭さに気づかない。だからこそ「疑ってみること」「人と話すこと」が大切だということを思い知らされる。

 自分で気づけたときも楽しいし、解説を見て「そういう考え方があったのか!」と気づくのも楽しい。純粋な「楽しさ」に突き動かされるがままにこの本は進めてみたいと思う。

 

 

 もう一つこの本から思ったのは、「数学を知識として詰め込もうとしても無駄」ということだ。今までは「何が自分のためになるか」を考えて「必要なもの」を勉強していたのだが、やはりそれではモチベーションが続かない。しかも、数学のように「本質的な理解」が必要とされるものは嫌々やっていても全く身にならない。

 だからむしろ、「楽しさ」からスタートして、「ためになる」は副次的でもいいのかもしれないと思った。必要なものに楽しさを付加していくんじゃなくて、その逆。

 

 

プログラマのための論理パズル 難題を突破する論理思考トレーニング

プログラマのための論理パズル 難題を突破する論理思考トレーニング

 

 

 こっちの本も興味ある……でも一つのことが終わらないままあちこち手を出すのは自分の悪い癖なので、今の本をやりきってからにしよう。。