プログラマの数学2
第2章 論理
【まとめ】
命題:正しいか正しくないかを判断できる文
網羅的:もれがないこと
排他的:だぶりがないこと
ツール
- ベン図:集合を表す。(命題が真になる集合と偽になる集合)
- 真理値表:網羅的で排他的は分轄を表す。
- カルノー図:全命題の真偽の組み合わせを2次元的に表す。
論理は自然言語のあいまいさをなくす。
- 仕様書のあいまいな表現を論理を用いて厳密且つ正確なものとする。
- 仕様書のわかりにくい表現を論理を用いてシンプルなものに変換する。
- 大きくて解きにくい問題は、網羅的で排他的な分轄によって小さくて解き易い問題に変換できる。
(if文の場合、命題を真の場合と偽の場合に問題を分轄している。) - プログラムは論理的に作成されコンピュータは論理的に動く。プログラマは論理をよく理解し使いこなせる必要がある。
元々数学は好きなのだが、論理は苦手。
今回苦手分野の克服に良い機会だと思い読んでみたが、なかなかしっくりこない。
きっと情報を整理しきれていないのと、論理を意識して考えることが経験不足なのだろう。
教えられるレベルじゃない。問題を提示とかできるレベルじゃない。
対策として論理を意識すること・頭で考えすぎないでちゃんと図を書くこと。
簡単に言えば経験を積むこと。
とりあえず今は「カルノー図すげー!ルールがシンプルになった!」とはしゃいでおく。