今日のアルゴリズム:多項式、指数関数、対数関数、階乗
多項式
一般にで表される関数をnに関するd次の多項式という
指数関数
- 一般的にで表される関数を指数関数という
対数関数
- 二進数対数:
- 自然対数:
- 冪乗:
- 合成:
- 性質
-
- 例(a=8,b=2):
-
- 例(a=8,b=16,c=2):
7 = 3 + 4
- 例(a=8,b=16,c=2):
-
- 例(a=16,b=2,c=2):
8 = 2 * 4
- 例(a=16,b=2,c=2):
-
- 例(a=16,b=4,c=2):
-
- 例(a=8,b=2):
- memo:
- 例(a=8,b=2):
-
- 例(a-4,b=2):
- 例(a-4,b=2):
-
- 例(a=2,b=4,c=256):
- 16=16
- 例(a=2,b=4,c=256):
-
※例は私が適当に検証したもの
- 対数の底を別の定数に変えても対数の値は定数倍しか変化しないので定数因子が無視できるときはlgnを使うことが多い
- であるとき関数f(n)は対数多項式的に限定されている(polylogarithmeicaally bounded)という
- 任意の正の多項式関数はどんな対数多項式関数よりも早く増加する。
階乗
n!
n * (n-1) * (n-2) * ... * 1
のような式のこと- 計算量
- 上界:
- 下界:
- 補足:上記二つは証明することが練習問題になってる
- 他:
反復
関数の反復適応
- :初期値nに対してf(n)をi回適用して得られる関数
- 再帰的
- :i=0の時
- :i>0の時
- であれば
反復対数関数
- 対数関数を反復適用するもの。と表記する
- 定義:上記画像:tex
\log^{*}n=\min\left\{i \geq0:\lg^{(i)}n \leq 1 \right\}
がhatenablogでレンダできなかったので画像を貼っておく- 意味的には"1を下回る対数関数のi回の適用結果のうち、iが最小のもの"
- 例::16はを反復適用すると4回目で1を下回るのでの結果は3です。
- 1回目:
- 2回目:
- 3回目:
- 4回目:←1を下回った!
- 例::16はを反復適用すると4回目で1を下回るのでの結果は3です。
- 意味的には"1を下回る対数関数のi回の適用結果のうち、iが最小のもの"
- 非常にゆっくりと増加する。
- 観測可能な宇宙の原子の個数推定がよりずっと少ないため、以上の数値を超えることはほぼない。
フィボナッチ数
- 0,1,1,2,3,5,8,13,...な数
- 定義
- F0=0,F1=1,Fi=F(i-1) + F(i-2) ただしi>1
- フィボナッチ数は指数関数的に増加する
用語
- 漸近的に正:漸近的に正 (asymptotically positive) の関数とは,十分に大きいすべての n に対し て正である関数のことである(p37)
- 単調増加:m ≤ n ならば f (m) ≤ f (n) であるとき,関数 f (n) は単調増加 (monotonically increasing) であ ると言う(p44)
やってる時のツイート
反復対数関数という概念がよくわからない。16に2が底の対数関数を何回適用しても3にはならない気がするけど... pic.twitter.com/2UWpyMzxXM
— yuyabu (@yuyabu2) January 1, 2020
今までフィボナッチ数といえばプログラミングの練習のような非重要なものだと思っていたが、何故かページ数を割いて説明してる。改めてアルゴリズムとの関わりについて調べたら、フィボナッチヒープというデータ構造の特性を示すために重要な概念らしい。
— yuyabu (@yuyabu2) January 1, 2020
アルゴリズムイントロダクション 第3版 総合版:世界標準MIT教科書
- 作者:Thomas H. Cormen,Clifford Stein,Ronald L. Rivest,Charles E. Leiserson
- 出版社/メーカー: 近代科学社
- 発売日: 2018/01/09
- メディア: Kindle版