「アルゴリズム」を知ろう!|MacFan

特集 特集

プログラムの大事な要素

「アルゴリズム」を知ろう!

文●竹林暁松尾高明(ともにTENTO) イラスト●大野文彰小平淳一

プログラミングの世界では「アルゴリズム」という言葉がよく出てきます。このアルゴリズムとはいったい何でしょうか。

アルゴリズムとは、ある問題を解決するために必要な段取りを記述したもの、つまり答えを出す「手順」のことです。プログラムとよく似ていますが、問題解決のためのアイデアをまとめたものが「アルゴリズム」、そのアイデアを実際のコンピュータで動作するよう具体的に指示するのが「プログラム」です。

たとえば、三角形の面積を求めるための「公式」や、4桁の数字の掛け算を行うための「筆算」もアルゴリズムの一種。人類は何千年も前から、アルゴリズムを考案してきました。

以前ならば人間自身が実行するしかなかったアルゴリズムも、今はコンピュータに任せることができます。そのためコンピュータの発展とともにいくつものアルゴリズムが実用化され、一層便利な社会になってきました。ここでは、そんな実用的なアルゴリズムの例を紹介します。

 

「ファイルを圧縮する」アルゴリズム

容量の大きなデータを「zip」形式に圧縮したあと、メールなどで送ることがありますね。データ圧縮の技術は至るところで使われていて、たとえば、携帯電話の音声も送られてくる途中はデータ圧縮されています。そのほうが、同じ設備で多くの携帯電話利用者の音声を効率よく送ることができるからです。

いくつもある圧縮のアルゴリズムで一番簡単なのは、文章中の繰り返し部分を見つけてより短い文字列に置き換えてしまうことです。たとえば「AAABBBBBCCCCC」というデータがあったとします。よく見るとAが3回、BとCが5回ずつ繰り返されているので「A3B5C5」のようにデータを置き換えられます。13文字あったデータが6文字に圧縮されました。しかも、圧縮されたデータから元のデータ「AAABBBBBCCCCC」を再現することもできます。