seegongsik
アルゴリズム

わかりやすく アルゴリズム とは

アルゴリズムは難しい言葉ではありません。「問題を解くための決まった手順」のことです。ラーメンを作る、道を探すといったことのように、手順を決めておけば、だれがやっても同じ答えになります。

01

サンドイッチを作る手順

サンドイッチを作るとしましょう。
パンを出して、ジャムを塗って、パンをかぶせます。
この決まった手順を一つずつ踏めば、サンドイッチができあがります。
これがアルゴリズムです。

1パンを二枚出します
2一枚にジャムを塗ります
3もう一枚でかぶせます
4半分に切ります
できあがり!サンドイッチになりました
「次の段階」を押すたびに手順が一つずつ進みます。手順を踏めば問題が解けます。

「次の段階」を押すたびに、手順が一つずつ進みます。パンを出す → ジャムを塗る → かぶせる → 切る → 完成。

難しそうに聞こえた「アルゴリズム」は、じつはこれです。
何を先にして、次に何をするか、その順番を決めておいたもの。
レシピも組み立て説明書も、みんなアルゴリズムといえます。

02

靴下が先か、靴が先か

順番は、なんとなく決まるものではありません。
靴下をはいてから靴をはけば、うまくはけます。
でも靴を先にはいてから靴下をはこうとすると、できません。
順番が間違えば、結果も間違うのです。

1靴下をはきます
2靴をはきます
ちゃんとはけました
同じ二つの段階でも、順番が変わると結果が変わります。

順番を変えると結果が変わります。正しい順番 → うまくいく · 逆の順番 → うまくいかない。

だからアルゴリズムでは、順番がとても大切です。
何を先にするかによって、うまくいったりいかなかったりするからです。
手順を知るだけでなく、正しい順番を知ることなのです。

03

同じ手順なら同じ結果

決まった手順の力は、ここにあります。
私がその手順どおりにやり、友だちもその手順どおりにやれば、二人とも同じ答えになります。
気分や運に左右されず、手順が同じなら結果も同じです。

私
3 足す 4
= 順に足すと
?
友だち
3 足す 4
= 順に足すと
?
同じ手順に従えば、だれがやっても同じ答えが出ます。これがアルゴリズムの力です。

同じ手順に従えば、二人とも同じ答えになります。私 → 7 · 友だち → 7。

これがよいのは、信頼できるからです。
「この手順どおりにやれば、必ずこの答えになる」。
だからコンピュータにこの手順を書いてあげれば、いつも同じことをしてくれます。

04

二つのうち大きい数を探す

とても小さなアルゴリズムを一つ、いっしょにたどってみましょう。
二つの数のうち、大きいほうを探すアルゴリズムです。
「二つを比べる、大きいほうを選ぶ」。この手順でおしまいです。
入力が入れば、答えが出てきます。

数 A
7
数 B
4
1. 二つの数 A と B を見ます (7, 4)
2. A が B より大きいか比べます (7 > 4?)
3. 大きいほうを選びます
ボタンを押して、手順どおりに解いてみましょう
決まった手順を踏むと、入力(7, 4)から答え(7)が出ました。

入力 → 手順 → 答え。数 A 7 · 数 B 4 → 比べる → 答え 7。

たいしたことがないように見えても、こうした小さな手順が集まれば、とてつもないことをします。
何千個もを並べたり、ほしいものを見つけ出したり。
どれも決まった手順の力です。

05

コンピュータにさせるには

コンピュータは、自分で「うまく」やることはできません。
何をどんな順番でするのかを、私たちが書いてあげなければなりません。
その手順こそがアルゴリズムで、うまく書いてあげれば、コンピュータは速く正確にやってのけます。

アルゴリズム = 問題を解く手順
決まった段階 · 正しい順番 · だれがやっても同じ答え。基本をつかみました。
並べ替え
バラバラなものを順に並べる
探索
ほしいものを見つける
その先
もっと賢い手順
次のレッスンでは問題を小さな段階に分けて考える方法を、その次にバラバラなものを順に並べる「並べ替え」を扱います。

手順がわかったら、次へ。アルゴリズム = 問題を解く手順 → 並べ替え · 探索 · その先。

これからどんなアルゴリズムに出会っても、こわがる必要はありません。
どんなに複雑に見えても、中身は同じです。
何を先にして、次に何をするかを決めておいた手順にすぎないのです。

一言でいうとアルゴリズムとは「問題を解くための決まった手順」です。手順を踏めば答えが出て、順番を間違えれば結果も間違います。同じ手順ならだれがやっても同じ答えになるので、コンピュータに手順を書いてあげれば、いつも同じことをしてくれます。
← アルゴリズム
このページがお役に立ったなら支援する