1. ホーム
  2. algorithm

[解決済み] 素朴な」アルゴリズムとは何か、「閉じた」解とは何か?

2022-02-09 06:35:01

質問

アルゴリズムを説明する際の用語のセマンティクスについて、いくつか質問があります。

まず、「素朴な」アルゴリズムとは何を意味するのでしょうか。ある問題に対する他の解法とどう違うのでしょうか?また、解決策にはどのような形があるのでしょうか?

次に、「閉じた形」の解があるという話をよく聞きます。この意味もよくわからないのですが、漸化式を解くときによく出てくるのです。

お忙しい中、ありがとうございました。

解決方法は?

A ナイーブアルゴリズム は、通常、問題を問われたときに、最も明白な解決策です。それは賢いアルゴリズムではないかもしれませんが、おそらく仕事を成し遂げることができるでしょう(...最終的には)。

例:ソートされた配列の中からある要素を探そうとする。 Naiveなアルゴリズムとしては 線形探索 . そうでない場合は、バイナリサーチを使用します。

より良い例として、部分文字列の検索があります。 ナイーブアルゴリズム よりもはるかに効率が悪いです。 Boyer–Moore または Knuth–Morris–Pratt アルゴリズム

A 閉じた形の解 は、ループや関数などを使わずに即座に動作するシンプルなソリューションです。

例 1からnまでの整数の和を求める反復アルゴリズム

s= 0
for i in 1 to n
s = s + i
end for
print s

クローズド・フォーム(同じ問題の場合)

s = n * (n + 1 ) /2