「料理の段取り」がプログラミングに役立つ理由 「怠け者の欲求」がアルゴリズムを発展させた

著者フォロー
ブックマーク

記事をマイページに保存
できます。
無料会員登録はこちら
はこちら

印刷ページの表示はログインが必要です。

無料会員登録はこちら

はこちら

縮小

何を、どこで、何個買うか、どの順番で回るかがわかっていたので、当然かかった時間も短く、楽な気持ちで買い物できました。足も疲れずに済んだだけでなく、奥さんからは「あなた、すごいわ!」と久々に見直されたのでした。

料理の段取りもアルゴリズム

今度は、奥さんが負けじと料理の段取りに張り切ります。

「さあ、ホームパーティーの準備に取りかかるわよ! あなたに対抗して料理の工程と分担表を作ってみたわ」

「なんと、これはすごい!」と驚くあなたに、奥さんはにっこり微笑みながら、「優先順位の最も高い作業は、待ち時間の長いプロセス。2番目は次の工程にリンクしているプロセス、3番目は作業時間自体が長いプロセス。そして最も優先順位が低い、つまり、お客様がいらっしゃる直前にすべき作業は、時間が経つと味が大きく落ちるメニューのプロセス」としたり顔で言うのでした。

そして、ホームパーティー当日は、余裕を持って楽しみながら行うことができたので、ゲストも大満足。そして、あなたと奥さんの夫婦仲も円満に!……なったかどうかはさて置き、 この買い物と料理の例から、日常生活や家事においても、

・早く効率良く終わらせたい
・次回にも役立つ手法を作りたい

という気持ちが働いていることをご理解いただけましたでしょうか。

こういった気持ちから作られた「処理の手順」のことを「アルゴリズム」と呼びます。そして、プログラミングの世界では、どのような場合でも適用できるよう、このアルゴリズムをもっと数学的に突き詰めて、一般化していくのです(『爆速! アルゴリズム』第12章の「スーパーマーケットを効率良く回る」では、多次元配列とヒープという概念を使って考え方を説明しています)。

数学的にどこまで処理の手順(アルゴリズム)を突き詰めていくかは別として、やっていることとしては、プログラマーもあなたも、「早く、効率のよい手順」、つまり、アルゴリズムを作ったという点において全く同じである、といってよいでしょう。

そしてこのことは、家事だけでなく、会社での仕事の進め方から出勤時の通り道、仕事の段取りに至るまで、生活全般、いや人生全般において当てはまるといっても過言ではありません。これらすべてにおいてアルゴリズム(プログラミング的思考)を皆、意識・無意識のうちに使っているわけです。

次ページ判断基準からアルゴリズムは作られる
関連記事
トピックボードAD
キャリア・教育の人気記事