読者です 読者をやめる 読者になる 読者になる

はじめてのプログラミング日記

プログラミングが出来るようになりたい人の日記。ITパスポート勉強中。

アルゴリズムとは?ハムを簡単に切る方法

こんにちは、Kikuchigeです。

 

今回はアルゴリズムについてのお話をします。

 

みなさんは、アルゴリズムというものをご存知でしょうか?

 

なんとなく聞いたことがある、または知らない方がほとんどではないでしょうか。

中にはプログラミングを勉強している方で、知っていて当然、という方もいると思います。

 

ちなみに私は、つい最近知ったばかりなので、今回は、アルゴリズムを全く知らないという方向けに入門編といった感じで解説していこうとおもいます。

 なので、もう知っている!という方はスルーしちゃってください。または、それでもいいよ、という方は復習としてぜひお読みになってください。

 

……というわけで、

 

まず、アルゴリズムとは何なのか、からお話ししていきます!

 

アルゴリズムとは。

 

この単語だけ聞いても、よくわかりませんよね。

アルゴリズムは「問題を解決する手段」という言葉に直すことが出来ます。

 

例えば、ある一つの問題があったとします。

 

プログラミングに限ったことでなくてもいいですよ。

例えば、買ってきたロースハムを、包丁で1センチ角に切りたいと思ったとします。

 

一枚一枚、格子状に縦横に包丁を入れていく、

あるいは、まず半分に切ってから二枚に重ねて切り分ける、

細切りにしてから、重ねて端から切っていく……

 

ハムの切り方といっても、やり方はたくさんありますよね。

どう切るかは人それぞれだと思います。

 

ですが、どういった手順で切るかなんて普段考えたりすることはあまりありませんよね。

なんとなく、どう切れば簡単に切れるかな……

と、包丁を持った時に何となく頭に思い浮かべて切ることが多いのではないかと思います。

 

アルゴリズムでは、この一枚のハムを切るために、どういった手順で切るのか。

このことを明確に決定し、手順を書きだすという作業をします。

 

ではなぜこういったアルゴリズムが必要なのでしょうか。

それは、手順の最適化を目的としているからです。

 

先ほど言ったように、ハムの切り方の手順はいくつかありますよね。

ですが、できれば短時間で簡単に切りたいと思うことが普通ではないでしょうか。

 

もし、ハムが一枚ではなく、何枚も切ることになったらどうでしょう。

いちいち一枚一枚切っていたら、とても時間がかかってしまいますよね。

できれば、重ねて切って包丁を入れる回数を減らそうと思われるかと思います。

 

そういった「手順の最適化」を目指すために、

アルゴリズムは必要となってきます。

 

ですが、普段の生活の中でわざわざアルゴリズムを使って行動を決定することはしません。

アルゴリズムは、おもにプログラミング設計をするときに、コンピューターに手順を説明するために必要になってきます。

 

このアルゴリズムによって、コンピューター問題を解決する際、どういった手順で解決すればいいのか納得できるわけです。

そして、命令する手順が少なければ少ないほど実行するコンピューターも、命令する人間も楽ちんです。そのために「手順の最適化」は必要になってきます。

まとめると、問題を解決する手段の明確化、手順の最適化はこういった人がコンピューターに命令するために必要なのです。

 

……ちなみにですが、なぜハムの切り方をたとえ話にしたのかというと、たまたま見た3分クッキングでハムを切るシーンがあったので、そのときにふっとアルゴリズムのことが思い浮かびました。

食材の切り分け方からアルゴリズムを考えるというのは、下記のサイトから参考にしています。

http://research.nii.ac.jp/~uno/algo_3.htm

 

一見手間のかかりそうなアルゴリズムですが、いかに少ない手順で物事を実行するのかを考え、結果的に最速の手順が思いついたときには、とても達成感を感じます♪

頭の体操にもなりますので、ぜひ体験してみてはいかがでしょうか。

 

というわけで、今回はアルゴリズムのお話をしました。

 

上手く伝わりましたでしょうか?もしわかりずらかったと感じた方や、もっと詳しいことを知りたい!といった方は下記のサイトもぜひ参考にしてみてください。

 

paiza.hatenablog.com

home.jeita.or.jp

 

 

それではまた。