簡體   English   中英

我怎樣才能證明1 / n是O(1)?

[英]How can I prove 1/n is O(1)?

如何在數學上證明1 / n是O(1)? 我很困惑從哪里開始。 有幫助嗎?

正如問題所說,從big-O表示法的定義開始。

F(x) = O(G(x)) IFF there exist constants k and m, 
such that for all n > m, k*|G(n)| > F(n). 

(請在此處查閱textboox以獲取准確的措辭。)

非正式地說,這意味着如果我們走得足夠遠,最終G(n)將主導F(n),無論我們通過常數因素給予F(n)多大的初始優勢。


那么,你如何證明這樣的事情呢?

這樣的證明通常是建設性地完成的 - 表明m和k的特定精心選擇的值使不等式起作用。

現在你只是做代數。 找到滿足形式定義的m和k。 根據所需的形式/細節水平,您可能需要證明1 / n是單調遞減(或做一些感應證明),以表明您對m和k的選擇確實有效。


Margus(和Loadmaster):漸近符號講述函數 ,完全獨立於底層硬件和實現。 1 / n = O(1)是一個數學真理,即使存在我們稱之為“計算機”的東西,也不會被預測。 如果您正在考慮指令數量,那么您就是在推理復雜性類別(想想P,NP,EXP),而不是漸近符號。

如果你為一個算法演示這個,首先指出輸入將是一個正數量的數據(N> = 1),你不能輸入1/2數據:)

之后,證明當n> 1時1 / n是一個增長的函數,你應該使用感應,並且你很好,因為你已經指出n總是大於1!

好吧,讓我們考慮一下這一點。 我們有兩個函數f(n)= 1 / n和g(n)= 1。 我們需要的是兩個常數C和k,使得每當n> k時0 <= f(n)<= C * g(n)。 如果兩個函數的域都限制為所有正整數的集合,我們只需選擇C = 2和k = 0。 然后,對於所有n> 0,我們得到0 <= 1 / n <= 2 * 1.這里我們稱C和k為關系的見證1 / n是O(1)。

需要更嚴格地證明一下嗎? 那么...... 當且僅當 1 <n(通過簡單代數)時,顯然1 / n <1。 因此,如果n = 1(這意味着1 / n = 1),我們知道2 * 1> 1並且如果n> 1,我們知道這意味着1 / n <1,在這種情況下2 * 1> 1 / n。

你實際上沒有必要證明它,這是事實。 如果n是大於0的自然數,則1 / n的上限始終為1。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM