問題は「引数を最小限で行こうというエコ行動原理」
新年明けましておでとうございます。みなさま、お正月休みはいかがお過ごしでしたでしょうか?
個人的には、新垣結衣さんの照れ照れ「生恋ダンス」が見れただけで、生きててよかった~!と思えた年末年始でした。
-----
と、そんなほんわかした正月気分の中、こんな記事を見ました。
「初詣ベビーカー論争」に感じる、相変わらず少子化一直線な社会の不寛容さについて
http://otokitashun.com/blog/daily/13841/
そもそもお寺の看板から始まった議論ですか、、、。
なんというか、どうにも世知辛いギスギスした世の中ですね。。
しかし実際は、震災の時もボランティアで活動した若者はたくさんいましたし、インターネットやショッピングセンター経由で募金も大量に集まる時代です。
凶悪犯罪も減ってますし、いじめなんかも劇的に減ってますし、街でヤ○ザ風の怖い人も目にしませんし、基本的に街中禁煙ですしゴミは落ちてないですし、少なくとも自分が子供だった30年前よりも日本人のモラルはずっとよくなっています。
つまり「こういう場合は、こういう行動をするべきなんだ」という判断をする能力は格段に上がっているのですが、問題はその判断をするための引数を最小限で行こうというエコ行動原理にあります。
たとえば、
「サイコロを振って、1が出たら1000円もらえます。ゲーム参加費は100円です。何回でもチャレンジできます。」
というゲームがあったとして、あなたはこのゲームに参加するでしょうか?
数学が少しできる人であれば、このゲームでゲットできる賞金の期待値は1000*1/6=166.7円ですから、何度でもやっていいなら「やる」の一択であることがわかります。(ゲームでお金を儲けるなんていうのは主義に合わないというのは別にしまして)
この「やる/やらない」の判断の関数は、こんな形になります。
function outputName($dice_num, $prize, $challenge_num){
(判断のためのアルゴリズム)
}
// dice_num:当りの目の数
// prize:賞金
// challenge_num:チャレンジ可能回数
みなさん、このアルゴリズムの実装はとてもお上手です。
しかし、このゲーム、実は20面サイコロで1の出る確率が1/20だったら話は変わってきますよね?
期待値を大幅に下回ってしまうので、たぶん相当なギャンブラーでかつ一回勝負でない限りやる価値はないでしょう。
現実はこうだったわけです。
function outputName($dice_num, $dice_faces, $prize, $challenge_num)
(判断のためのアルゴリズム)
// dice_num:当りの目の数
// dice_faces:サイコロの面の数
// prize:賞金
// challenge_num:チャレンジ可能回数
このように、正しい判断アルゴリズムを組む能力があっても、現実社会の中から可変条件の部分を切り出し、その情報を集める能力がないと、最終的に正しい結果は得られません。
冒頭の記事で言えば、「子育て中の家族は、自分達とは違う厄介な世界で生きている」という条件の考慮不足があります。そういう人が「だっこすればいい」「年末年始くらい我慢すべき」などという結論を出すのです。
世の中は非常に複雑かつ奥深く、簡単に切り分けることはできません。
無駄を省いた効率処理からは少し回り道することにはなりますが、正しい結果を得るためには、常に心に余裕を持って「本当にここは固定なのか?可変部分を切り捨てて柔軟性のない処理になってしまっていないか?」を今一度考えるべきではないでしょうか。
、、、と、非常に回りくどいお話をしましたが、要は「判断能力は十分あるので、これからは想像力を養おう!」というお話でした。
2017年もなにとぞよろしくお願い致します。
株式会社plumsa(プラムザ)では、システム開発に関するお悩みを受付中です↓