論理の「もれ」と「だぶり」

数学のプラグラマを読んでる。第2章の論理に入った。バス料金のルールを論理学を利用して「もれ」なく「だぶり」のないものを作ろうというもの。これを網羅的(もれなく)で排他的(だぶりなく)な分割と言うらしい。

 

「もれ」がある場合。「乗客の年齢が6歳より上である」「乗客の年齢が6歳未満である」この料金ルールには6のところで「もれ」ている。どちらも条件に入らず、完璧に判定できない状態になっている。

 

「だぶり」がある場合。「乗客の年齢が6歳以上である」「乗客の年齢が6歳以下である」この料金ルールには6のところで「だぶり」がある。重なってしまっているということ。

 

プログラムを書いている時も「もれ」「だぶり」がないように書くと、バグが少ないコードになるということか。

くらえ!玉ねぎマシンガン!!ぼんっ!!!

データを集めることにハマってる。CSVフォーマットで集めてるんだけど、もっと良いフォーマットってあるのかな。

 

集めるために特別な技術は使ってないんだけど。PerlのWebScraperとか、ShellscriptのCurlとかWgetとか使ってGrepとかSedで加工してCSVフォーマットに落とし込んでる。

 

Googleでfiletype検索で絞るとエクセルファイルやCSVファイルが手に入るので、スクリプトを書いて集めるのがめんどくさい時はそれで手に入れて眺めてるみたいなことをやってる。

 

集めたデータは、RStudioで眺めることにしている。まあRStudioなので統計処理なども出来るんだけど、今のところは簡単なグラフを書いたり、数字の特徴を見るために代表値を出力してるだけ。回帰分析とかやってみたんだけど中々難しい。

 

統計学とか分かれば、もっと質の良いデータが手に入りそうな感じはあるんだけど、数学とか分からないといけない。プログラマの数学っていう本を買ってみたんだけど、かなり遠い道のりな気がする。

 

適当にデータを集めるのが精一杯