高速なコンピューターと低速なコンピューターを考えると、低速アルゴリズムを実行する高速コンピューターは、高速アルゴリズムを実行する低速コンピューターよりもどのくらいのサイズになりますか?


8

この質問の出典は、私が受講している学部課程から来ています。これは、アルゴリズムの分析の概要をカバーしています。これは宿題ではなく、CLRSで質問されます。

MIPSで実行されている低速マシンとy MIPSで実行されている高速マシンがあります。また、同じクラスで実行時間の複雑さが異なる2つのアルゴリズムがあります。1つの「低速」アルゴリズムはT n = c 1 n 2で実行され、「高速」アルゴリズムはT n = c 2 n log nで実行されます。xyT(n)=c1n2T(n)=c2nlogn

高速アルゴリズムは低速マシンで実行し、高速アルゴリズムは低速マシンで実行します。低速アルゴリズムを実行する高速マシンが高速アルゴリズムを実行する低速マシンに勝るようなnの最大値はいくつですか?

これまでの私の解決策:

すべてのnのセットを見つけるnc 2 n log nとなるような nは自然数です。

c2nlognx>c1n2y
n

これはこれまでのところ私の仕事です:

{n:c2nlog2nx>c1n2y,nN}={n:n<c2yc1xlog2n,nN}

今頭に浮かぶ唯一の解決策は、最初のnが見つかるまですべての値をプラグアンドチャグすることです。n

n<c2yc1xlog(n)

もはや保持されません。


3
nxxxx

回答:


2

最後の不平等を考慮してください:

n<c2yc1xlog(n)

ClognC=c2yc1x

n=Clog(n)

そして、それぞれの間隔のあるポイントでそれぞれの関数値を単に計算することによって、どのアルゴリズムがどの間隔でより速いかを見つけます。

C

n=eW1(ln2C)

もしと、W KCeln2WkC116,74C=17


念のために言っておきますが、あなたは私の方程式を自然対数または対数2であると解釈しましたか?log(n)のすべてのインスタンスがベース2であることを明確にして、質問を適切に変更します。
DoggoDougal 2012

CSでは通常、使用しますが、数学者はlog = lnと仮定します。したがって、私がログを使用する場合、それは2を基数としており、例外が示されています。これは(おそらく)ln 2log=log2log=lnlog2ln2結果のです。
ラファエル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.