わかりやすく アルゴリズム とは
アルゴリズムは難しい言葉ではありません。「問題を解くための決まった手順」のことです。ラーメンを作る、道を探すといったことのように、手順を決めておけば、だれがやっても同じ答えになります。
サンドイッチを作る手順
サンドイッチを作るとしましょう。
パンを出して、ジャムを塗って、パンをかぶせます。
この決まった手順を一つずつ踏めば、サンドイッチができあがります。
これがアルゴリズムです。
「次の段階」を押すたびに、手順が一つずつ進みます。パンを出す → ジャムを塗る → かぶせる → 切る → 完成。
難しそうに聞こえた「アルゴリズム」は、じつはこれです。
何を先にして、次に何をするか、その順番を決めておいたもの。
レシピも組み立て説明書も、みんなアルゴリズムといえます。
靴下が先か、靴が先か
順番は、なんとなく決まるものではありません。
靴下をはいてから靴をはけば、うまくはけます。
でも靴を先にはいてから靴下をはこうとすると、できません。
順番が間違えば、結果も間違うのです。
順番を変えると結果が変わります。正しい順番 → うまくいく · 逆の順番 → うまくいかない。
だからアルゴリズムでは、順番がとても大切です。
何を先にするかによって、うまくいったりいかなかったりするからです。
手順を知るだけでなく、正しい順番を知ることなのです。
同じ手順なら同じ結果
決まった手順の力は、ここにあります。
私がその手順どおりにやり、友だちもその手順どおりにやれば、二人とも同じ答えになります。
気分や運に左右されず、手順が同じなら結果も同じです。
同じ手順に従えば、二人とも同じ答えになります。私 → 7 · 友だち → 7。
これがよいのは、信頼できるからです。
「この手順どおりにやれば、必ずこの答えになる」。
だからコンピュータにこの手順を書いてあげれば、いつも同じことをしてくれます。
二つのうち大きい数を探す
とても小さなアルゴリズムを一つ、いっしょにたどってみましょう。
二つの数のうち、大きいほうを探すアルゴリズムです。
「二つを比べる、大きいほうを選ぶ」。この手順でおしまいです。
入力が入れば、答えが出てきます。
入力 → 手順 → 答え。数 A 7 · 数 B 4 → 比べる → 答え 7。
たいしたことがないように見えても、こうした小さな手順が集まれば、とてつもないことをします。
何千個もを並べたり、ほしいものを見つけ出したり。
どれも決まった手順の力です。
コンピュータにさせるには
コンピュータは、自分で「うまく」やることはできません。
何をどんな順番でするのかを、私たちが書いてあげなければなりません。
その手順こそがアルゴリズムで、うまく書いてあげれば、コンピュータは速く正確にやってのけます。
手順がわかったら、次へ。アルゴリズム = 問題を解く手順 → 並べ替え · 探索 · その先。
これからどんなアルゴリズムに出会っても、こわがる必要はありません。
どんなに複雑に見えても、中身は同じです。
何を先にして、次に何をするかを決めておいた手順にすぎないのです。