2016-09-07 15 views
0

私は自分でアルゴリズムを研究しています。私はIntroduction to Algorithms (CLRS)を使用し、楽しいと感じます。問題を解決しようとしたとき、私はこの問題(ランニングタイムの比較)でいくつかの困難に直面しました。
私はルールを知っていますが、私は答えを見つけましたが、私に詳細に説明する人が必要です。あなたは以下のlog nの実行時間の答えを見ることができます。 計算機に番号を記録しようとしましたが、以下の番号と一致しません。たとえば、私が計算機でlog(2^1000000)を使用したとき、これは私には全く新しい解答を与えません。9.9e301029。私はあなたが提供する任意の助けをいただければ幸いです実行時間の比較

LGのn = Tμsの=> N = 2^Tはμsの

lg n = 1 second => n = 2^1000000 = 9.9e301029 
lg n = 1 minute => n = 2^60000000 = 5.5e18061799 
lg n = 1 hour => n = 2^3600000000 
lg n = 1 day  => n = 2^86400000000 
lg n = 1 month => n = 2^2592000000000 
lg n = 1 year => n = 2^31536000000000 
lg n = 1 century => n = 2^3153600000000000 

答えて

0
LOG2(n)はマイクロ秒のランタイム(定数を持っているかもしれません

バイナリ検索因子はおそらくもっと小さい)。バイナリ検索は高速です。強力なコンピュータをお使いの場合は、メモリに6410億バイトの配列を収めることができ、バイナリ検索には36マイクロ秒かかるでしょう。はい、バイナリ検索には、宇宙のすべてのシリコンを使ってミリ秒かかるアレイを保持するのに十分な大きさのコンピュータメモリを構築することはできませんでした。

0

2^1000000 = 9.9e301029

log(2^1000000) = 1000000

1000000µs = 1s

クリア(ベース2と仮定して)?

次の式を使用してベース2にログインするために変換する必要があるので、ベース10をログに記録するほとんどの電卓のデフォルト:

log_b(x) = log_a(x)/log_a(b)