答えて
コンピュータ科学で対数が生じる最も一般的な方法の1つは、バイナリ検索、マージソートなどの分割・征服アルゴリズムで頻繁に発生する配列を半分に分割することです。そのような場合、単一要素配列になる前に、長さnの配列を半分に分割することができます。ログはです。
対数が発生する別の非常に一般的な方法は、数値のビットを調べることです。バイナリで数値を書き出すには、数字nの場合、およそログ nビットを使用します。一度に1ビットずつ動作する基数ソートのようなアルゴリズムは、しばしばこれらのようなログを生成します。バイナリGCDアルゴリズムのような他のアルゴリズムは、2の累乗を除算することで動作するため、ログファクタが浮動することになります。
時間の関数として成長する連続的なプロセスで作業しているため、物理、数学、およびその他の科学の対数がしばしば発生します。自然対数は、ある種のプロセスの「自然な」成長率がe x(「自然」成長率の定義については)によってモデル化されているため、これらのコンテキストで発生します。しかし、コンピュータサイエンスでは、指数関数的な成長は、通常、上述の分割・征服アルゴリズムやバイナリ値の操作などの離散プロセスの結果として発生します。したがって、私たちは通常ログが頻繁に発生するので、対数関数としてログ nを使用します。
これは、CSで常に底2の対数を使用しているわけではありません。たとえば、AVLツリーの解析では、フィボナッチ数の存在のために、基底が黄の比率φである対数を使用することがよくあります。多くのランダム化されたアルゴリズムは、倍音数を含む自然な対数に戻るクイックソートの標準解析など、何らかの方法でeを含みます。これらは、成長率が何か他のもの(フィボナッチ数や指数関数)によってモデル化されているプロセスの例です。そこで、異なるログベースを選択します。バイナリ数値を使って作業するか、または基底2の対数がデフォルトになるように物を半分に分割することは十分に一般的です。
多くの場合、どのベースを選択しても問題ありません。たとえば、big-O表記法では、すべての対数は漸近的に等価であり(倍数定数だけが異なる)、O(n log n)やO(log n )。
ありがとう、あなたの答えは本当に良かったし、私のために多くのことを明らかにする。 – Andy
- 1. コンピュータ科学のための数学
- 2. コンピュータ科学
- 3. 複数のサブプロットに対して固定指数と有効数字で科学記法を設定
- 4. 編集APコンピュータ科学U1例2
- 5. 最尤推定パラメータとの対数パラメータを持つログ関数の推定
- 6. なぜ、isset()は、設定された真であるブール変数に対してFALSEを返すのですか?
- 7. ルビのクラスで定数が推奨されないのはなぜですか?
- 8. IFFT Matlab対称Java対数学コモン
- 9. 科学記法がPHPで整数と同じではないのはなぜですか?
- 10. コンピュータの数学
- 11. 変数置換は、ウィジェットの存続期間中に変更されない値に対してのみ推奨されるのはなぜですか?
- 12. matplotlibの対数プロットで学術数値のフォントを設定する方法は?
- 13. Tensorflow numpyの対数学関数
- 14. 対数はどのようにプログラムされていますか?
- 15. 最小値の数学/科学記号
- 16. 機械は人工知能または理論的コンピュータ科学の一部を学習していますか?
- 17. 科学記法と数字のシーケンス
- 18. この場合、1引数のインスタンスメソッドのBiConsumerに対する型推論はなぜ異なるのですか?
- 19. デバッグ時に相対パスが設定されていない、なぜですか?
- 20. 高次のトラバーサルファンクタに対応する光学系はありますか?
- 21. 2次元アレイに対応するscipy.signal.deconvolveはありますか?
- 22. C++の科学定数にdoubleを使用するのは安全ですか?
- 23. カラーバーoffsetText(科学的なベース乗数)カラーバー
- 24. 基数2の対数スケール
- 25. 可変数の引数に対するJava数学演算
- 26. 次のロジックでラッチが推論されないのはなぜですか?
- 27. 角2の対象は関数ではありません
- 28. matlabで科学の数の仮数と指数を計算する
- 29. Python 3/eli5 - 乱数ゲーム対コンピュータ
- 30. onchangeは数量ボックスの検証に対処していますが、なぜEnterキーが渡されますか?
これは著者の主張です。 「コンピュータサイエンス」は広い分野であり、そのような包括的な声明は成立しない。本は何ですか? –