1

JavaとExcelを使用して、4つの異なる関数の大きなOを取得しようとしています。これらの機能が隠されているため、これらの機能が何であるかはわかりません。これが質問するのに適切な場所/フォーラムであるかどうかはわかりません.

私は、いくつかのJavaを使用してさまざまなデータを提供し、それらをステップ(1-n)とともにExcelに入れる機能を持っています。次に、出力が常に同じである場合にかかった時間の n と任意の尺度を使用して、それらをすぐにグラフに入れました。たとえば、n = 1 の場合、実行するたびに常に 200 になります。関数が実行されるたびに変化するものについては、関数を 10 回実行し、各ステップの平均を計算しました。

データを取得したら、それぞれのグラフを作成し、トレンドラインを配置しました。たとえば、私の f(1) は、多項式の近似曲線の次数 2 に最もよく適合しました。しかし、それが n2 であることを証明する必要があったので、=Steps/LOG(N) を実行しました。これにより、多項式の近似曲線の次数 3 に最も適合するようになりました。(そうですか?)

この関数が二次または三次であることを「証明」するために次に何をすべきか、またはその最良のケース/最悪のケースを証明する方法が本当にわかりません。

だから基本的に私は欠けているステップが何であるかを理解しようとしています.

計算グラフ トレンドライン ??? - 関数が大きな O(?) を持つことの証明

4

1 に答える 1

0

「n=1 の場合、常に 200 に等しい」と言うのは、n=1 の場合、実行に 200ステップかかるということですか? その場合、この関数は 200n で、この O(n) になります。

これを解決するには、各関数を異なる値 (10、20、30 ... など) から大きな数値まで呼び出す必要があると思います。これらの値を取得し、Excel にプロットします。次に、組み込みのトレンド ライン機能を使用します。これにより、実行時間の大まかな見積もりが得られます。そこから、Big-O を取得できるはずです。

于 2012-10-31T15:30:49.710 に答える