2016-09-30 53 views
1

我一直在試圖解決一個問題幾天了。我環顧網絡尋求幫助,我發現的唯一答案與我的結論相反。指數大O等效

這裏的問題:

**3^n = 2^(O(n)) True or False?** 

得出的結論是「真」,而正確答案是:

3^n = 2^(O(n)) since 3^n = 2^(n*log_2(3)) = 2^(O(n)) 

的問題是,我不知道答案是如何確定的。一步一步的過程對我來說是最好的解釋。換句話說,3^n = 2^n是如何轉換成一個對數的,我們如何確定常數和n> = k的起點?

編輯: 也許這將更容易解釋哪裏2和3來自這個受過教育的猜測。解決方案有一個3和兩個2。

If f(n) = 3^n and g(n) = 2^n 

The 3 in 2^(n*log_2(3)) must be coming from f(n)? 
The 2 in 2^(n*log_2(3)) must be coming from g(n)'s base? 
----> Is the log_2 a constant?? 

換句話說,如果這個問題是

7^n = 4^(O(n)) ? 

會正確的答案是提前

4^(n*log_2(7)) 

How is k determined, where all n >= k? 

謝謝!

+0

你的教授是正確的(有點不出所料!)。你對他的推理有什麼不瞭解? –

+0

這不是我的教授xD。我的教授一直沒有談論這個。我想我根本不明白他們的答案,或者爲什麼我的錯誤。根據這本書,我的答案應該是正確的嗎?我錯過了什麼? – FoxDonut

+0

你的推理是錯誤的,因爲你選擇'c'常數'錯誤的方式'。當n> N時,你會發現'c'表達式爲真 –

回答

2

教授是對的。他們的邏輯如下: 3^n = (2^log_2(3))^n = 2^(n*log_2(3)) = 2^O(n)

log_2(3) = z表示「2到z的力量給了我3」,我們正在提高2到這個指數,所以我們得到3^n

基本上他們發現,通過恆定在2^x指數相乘,可以改變基地3大O下降常數,因此如果基爲2或3

編輯沒關係:

If f(n) = 3^n and g(n) = 2^n 

The 3 in 2^(n*log_2(3)) must be coming from f(n)? 
The 2 in 2^(n*log_2(3)) must be coming from g(n)'s base? 
----> Is the log_2 a constant?? 

我不確定你在這裏問什麼。常數的log_2是一個常數。

4^(n*log_2(7)) 

Where k = 7, and n >= 7 and 2 is the constant 'c'? 

你的 「答案」 應該是7^n = 4^O(n)。您的顯示方式是7^n = 4^(n*log_4(7)) = 4^O(n),作爲4^log_4(7) = 7

+0

其實我刪除了它,不確定它是否正確,因爲它確實看起來像是你應該做的基於關於指數的教科書報價。 @FoxDonut我現在想弄明白它。 – Zarwan

+0

是的,我認爲你看着我選擇的隨機常量大聲笑 – FoxDonut

+0

我真的很感激。看到這本書的例子,我可能很遙遠,這似乎很奇怪。問題是我無法獲得答案。如果你願意,我可以拍攝一段文字,以便看到整個段落。 – FoxDonut