アルゴリズムのお話
こんにちは。開発部の横山です。
今年の冬も寒い日が続いておりますね。私は昨年から流行しているマイコプラズマ肺炎にかかり、数日の間完全にダウンしてしまいました。最近ではインフルエンザも流行っているので、こまめな手洗いやマスクの着用などの対策を心がけ感染しないように皆様もお気を付け下さい。
さて、突然ですが皆さんアルゴリズムってご存知ですか?
なかなか普段は耳にすることがないかもしれませんね。アルゴリズムとは、ある問題を解くための手順を定式化して表現したものです。コンピュータにおいては計算を行うときの計算方法と言えます。今回はソフトウェアを開発するにあたって重要な、アルゴリズムと言う概念について簡単にご紹介したいと思います。
一例として、「1から100までの数を足した数を計算せよ」という問題を考えてみましょう。単純な方法として、1+2+3+・・・+100のように順番に足し合わせていけば答えが出るでしょう。では、新たに「1から100000000までの数を足した数を計算せよ」という問題が出されたならばどうでしょう。今度は同じ方法だと、かなりの計算回数が必要になってしまいます。
別の計算方法を考えてみましょう。1と100、2と99、3と98というような数が2つずつの組を作り、組同士の数を足し合わせると合計が101の組が50個できます。この組全て合わせれば答えが出ます。この方法を、足し合わせる最後の数をnとして一般的にするとn(n+1)/2(nが偶数の場合)となりますので、足し算、掛け算、割り算各1回ずつの計3回の計算で済みます。足し合わせる数がいくつになってもこの計算回数は変わりませんので、単純に足し合わせていく方法より格段によい方法と言えます。
ずいぶん楽になったと思いませんか?
このように、アルゴリズム(計算方法)を工夫することができればより効率よく解に辿り着くことができます。ソフトウェア開発においても、より良いアルゴリズムを適用できれば処理にかかる時間を大幅に短縮できる可能性があります。
弊社の開発部でも、お客様にとってより使いやすいソフトウェアを開発できるように、日夜アルゴリズムについて頭を悩ませていますので、ぜひとも今後の製品にご期待ください。
今年の冬も寒い日が続いておりますね。私は昨年から流行しているマイコプラズマ肺炎にかかり、数日の間完全にダウンしてしまいました。最近ではインフルエンザも流行っているので、こまめな手洗いやマスクの着用などの対策を心がけ感染しないように皆様もお気を付け下さい。
さて、突然ですが皆さんアルゴリズムってご存知ですか?
なかなか普段は耳にすることがないかもしれませんね。アルゴリズムとは、ある問題を解くための手順を定式化して表現したものです。コンピュータにおいては計算を行うときの計算方法と言えます。今回はソフトウェアを開発するにあたって重要な、アルゴリズムと言う概念について簡単にご紹介したいと思います。
一例として、「1から100までの数を足した数を計算せよ」という問題を考えてみましょう。単純な方法として、1+2+3+・・・+100のように順番に足し合わせていけば答えが出るでしょう。では、新たに「1から100000000までの数を足した数を計算せよ」という問題が出されたならばどうでしょう。今度は同じ方法だと、かなりの計算回数が必要になってしまいます。
別の計算方法を考えてみましょう。1と100、2と99、3と98というような数が2つずつの組を作り、組同士の数を足し合わせると合計が101の組が50個できます。この組全て合わせれば答えが出ます。この方法を、足し合わせる最後の数をnとして一般的にするとn(n+1)/2(nが偶数の場合)となりますので、足し算、掛け算、割り算各1回ずつの計3回の計算で済みます。足し合わせる数がいくつになってもこの計算回数は変わりませんので、単純に足し合わせていく方法より格段によい方法と言えます。
ずいぶん楽になったと思いませんか?
このように、アルゴリズム(計算方法)を工夫することができればより効率よく解に辿り着くことができます。ソフトウェア開発においても、より良いアルゴリズムを適用できれば処理にかかる時間を大幅に短縮できる可能性があります。
弊社の開発部でも、お客様にとってより使いやすいソフトウェアを開発できるように、日夜アルゴリズムについて頭を悩ませていますので、ぜひとも今後の製品にご期待ください。