1樓:碎夜遊痕
i是這樣變化的:1, 3, 9, 27, ...
如果用i(x)表示第x次迴圈時i的值,則 i(x) = 3^x , x初始值為0。
迴圈在 i <= n 的時候停止,即 i(x) = 3 ^ x <= n;
=> x<= log3(n)
即迴圈結束時,最多進行了log3(n)次運算。
按照大o表示法定義,它的複雜度為 o(log3(n)), 即 o(lgn/lg3)
2樓:小雲老師
付費內容限時免費檢視
回答您好這邊是小度宛雲老師,現在為您提供諮詢服務,您的問題我已經看見了呢,正在整理資料,請您稍等,馬上給您答覆哦~(平台對話只有六次哦推薦親盡可能提供完線索,當然您也可以繼續加單追問,小雲竭力解決您的疑問)
迴圈控制變數 i 遞增/遞減的步長為乙個常數 ,則認為迴圈的時間複雜度
提問i=1; while(i
回答你這裡i為乙個常數傳輸進去,n沒有把控
提問然後呢
回答您是要這個步驟嘛
提問對的
回答稍等啊
這個是乘法是乙個量級的迭代
提問條件是<n,如果是<=n,那結果就是log3(n),那<n,結果是多少呢,能不能一次性說完
回答在while迴圈中,每迴圈一次i都會乘於3,當乘到x次時,i>n則退出迴圈,,所以while內的**會執行x次,即i^x>n,又因為i每次的乘數是2即底數為2,所以它的時間複雜度是 (log2n), 如果乘數是4則是o(log3n)int i = 1;
3資料是三打字有點麻煩,抱歉
n本身就是乙個變數,結果肯定是乙個無窮盡的數只能拿變數來逼近他的值
得到乙個關於n的時間複雜度的函式關係
結果是不會有確定的值的,除非你已經得到n的乙個定值,根據函式關係可以得出複雜度
提問不是i=n時退出迴圈嗎?它每次的乘數是3,那它的時間複雜度怎麼表示
回答log3n
這個就是他的時間複雜度函式
如果你擔心的是i和n的關係量的問題的話影響這個表示式,在這裡i
提問嗯嗯 好的 謝謝
回答第二個i等於n就滿足「等於n」退出
不客氣,有疑惑還可以問我
更多21條
i=1; while(i<=n) i=i*2 這個演算法的時間複雜度怎麼算
3樓:娛樂小八卦啊
這個演算法的時間複雜度為logn。
乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測試才能知道。但不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。
並且乙個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。乙個演算法中的語句執行次數稱為語句頻度或時間頻度。記為t(n)。
一般情況下,演算法的基本操作重複執行的次數是模組n的某乙個函式f (n),因此,演算法的時間複雜度記做:t (n) =0 (f (n) )。隨著模組n的增大,演算法執行的時間的增長率和f (n)的增長率成正比,所以f (n)越小,演算法的時間複雜度越低,演算法的效率越高。
在計算時間複雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出t (n)的同數量級。
擴充套件資料
演算法的時間效能分析
演算法耗費的時間和語句頻度
乙個演算法所耗費的時間=演算法中每條語句的執行時間之和
每條語句的執行時間=語句的執行次數(即頻度(frequency count))×語句執行一次所需時間
演算法轉換為程式後,每條語句執行一次所需的時間取決於機器的指令性能、速度以及編譯所產生的**質量等難以確定的因素。
若要獨立於機器的軟、硬體系統來分析演算法的時間耗費,則設每條語句執行一次所需的時間均是單位時間,乙個演算法的時間耗費就是該演算法中所有語句的頻度之和。
4樓:匿名使用者
你可以分析i,和迴圈次數之間的關係
i = 1, 2, 4, 8, 16 ...
所以假設迴圈次數是x。
那麼i = 2^x
條件是i <= n
2^x <= n
所以x <= logn
所以x 從1 到logn,一共執行迴圈體logn次,所以複雜度是logn
i=1; while (i<=n) i=i*2 時間複雜度
5樓:要火快留名
沒錯,n=4的時候,log2n=2。
但是,你有沒有注意到,時間複雜度是o(log2n),不是log2n。你不能無視符號"o"。
這個符號的意思是:時間複雜度不會比log2n大很多。通俗的說:就是時間複雜度或者和log2n在同一數量級,或者比log2n小。
關於時間複雜度 i=1; while(i<n) { s=s+i; i=i*3 }
6樓:友誼蛋蛋
時間複雜度為 log(n)。因為i每次迴圈擴大三倍,所以i 程式段i=1;while(i<=n)i=i*2;的時間的複雜度是(?) 7樓:北問邇 你可以分析i,和迴圈次數之間的關係 i = 1, 2, 4, 8, 16 ... 所以假設迴圈次數是x。 那麼i = 2^x 條件是i <= n 2^x <= n 所以x <= logn 所以x 從1 到logn,一共執行迴圈體logn次,所以複雜度是logn 8樓: 假設迴圈次數是x。 i = 1, 2, 4, 8, 16 ,i = 2^x條件是i <= n 2^x <= n 所以x <= log2n 一共執行迴圈體log2n次,所以複雜度是o(log2n) i=1; while(i<=n) i=i*3; 誰能告訴我這個的時間複雜度是多少?怎麼得來的? 9樓:碎夜遊痕 i是這樣變化的:1, 3, 9, 27, ... 如果用i(x)表示第x次迴圈時i的值,則 i(x) = 3^x , x初始值為0。 迴圈在 i <= n 的時候停止,即 i(x) = 3 ^ x <= n; => x<= log3(n) 即迴圈結束時,最多進行了log3(n)次運算。 按照大o表示法定義,它的複雜度為 o(log3(n)), 即 o(lgn/lg3) 10樓:小雲老師 付費內容限時免費檢視 回答您好這邊是小度宛雲老師,現在為您提供諮詢服務,您的問題我已經看見了呢,正在整理資料,請您稍等,馬上給您答覆哦~(平台對話只有六次哦推薦親盡可能提供完線索,當然您也可以繼續加單追問,小雲竭力解決您的疑問) 迴圈控制變數 i 遞增/遞減的步長為乙個常數 ,則認為迴圈的時間複雜度 提問i=1; while(i 回答你這裡i為乙個常數傳輸進去,n沒有把控 提問然後呢 回答您是要這個步驟嘛 提問對的 回答稍等啊 這個是乘法是乙個量級的迭代 提問條件是<n,如果是<=n,那結果就是log3(n),那<n,結果是多少呢,能不能一次性說完 回答在while迴圈中,每迴圈一次i都會乘於3,當乘到x次時,i>n則退出迴圈,,所以while內的**會執行x次,即i^x>n,又因為i每次的乘數是2即底數為2,所以它的時間複雜度是 (log2n), 如果乘數是4則是o(log3n)int i = 1; 3資料是三打字有點麻煩,抱歉 n本身就是乙個變數,結果肯定是乙個無窮盡的數只能拿變數來逼近他的值 得到乙個關於n的時間複雜度的函式關係 結果是不會有確定的值的,除非你已經得到n的乙個定值,根據函式關係可以得出複雜度 提問不是i=n時退出迴圈嗎?它每次的乘數是3,那它的時間複雜度怎麼表示 回答log3n 這個就是他的時間複雜度函式 如果你擔心的是i和n的關係量的問題的話影響這個表示式,在這裡i 提問嗯嗯 好的 謝謝 回答第二個i等於n就滿足「等於n」退出 不客氣,有疑惑還可以問我 更多21條 下面程式段的時間複雜度是 ? i=1; while(i<=n) i=i*2 11樓:仁昌居士 i=1; while(i<=n) i=i*2的時間複雜度copyo(log2n)。 整段**語句,中迴圈體只有乙個while(i<=n),執行的次數是: i = 1,i = 1*2=2,判斷2是否小於等於n,是則繼續迴圈,否則跳出迴圈。 i =2,i = 2*2=4,判斷4是否小於等於n,是則繼續迴圈,否則跳出迴圈。 i =4 ,i = 4*2=8,判斷8是否小於等於n,是則繼續迴圈,否則跳出迴圈。 根據規律發現,迴圈次數由log2n決定,所以複雜度是o(log2n)。 12樓:匿名使用者 假設迴圈次數是x。 i = 1, 2, 4, 8, 16 ,i = 2^x條件是i <= n 2^x <= n 所以x <= log2n 一共執行迴圈體log2n次,所以複雜度是o(log2n) 13樓:匿名使用者 迴圈退出的條件為i > n 設第k次迴圈後退出迴圈 於是2^k > n 因此k > log2n 以2為底的對數,k的實際值為log2n上取整 因此時間複雜度為o(log2n) 關於時間複雜度的問題,i=s=0; while(s 14樓: 根號2n=根號2*根號n=1.414*根號n,1.414是常數項捨去,故。 15樓: 這個你要看時間複雜度是怎麼定義的,為了剔除機器和程式設計技巧對執行時間的影響,在計算時間複雜度時考慮的是執行的次數,正如你所說,上述問題的算出來是根號2n,根號2n又等於根號2乘以根號n,此時我們就認為它的複雜度是根號n,因為根號2可以看成是它的乙個線性係數,隨著輸入規模n的增加是可以忽略的 16樓:掌中萌鼠 漸進時間複雜度是個近似值,n越趨近無窮大越接近準確值。 捨去項的常數係數,你可以把這個看看作一條為了方便的書寫約定。哪怕有100條語句複雜度也是o(1)。 因為如果不這樣做的話,你用什麼來決定項的係數?c語言程式的行數?還是編譯之後組合語言的行數? 這樣準確嗎?如果是長的複雜c語言語句呢?而且不同平台編譯產生的位元組碼條數也可能不同,所以你沒法準確的確定這個係數,乾脆就把他捨去,只考量n的數量級就夠了。 是連線的意思 是乙個空格,其它的字元也是要用引號括上的這個公式是說 i3單元格的內容後面接乙個空格,然後接上j3單元格的內容,然後再接乙個空格 意思是將 i3,空格,j3,空格 連起來。excel中的公式 int i3 j3 0.05 10 10 是什麼意思,要怎麼設定?int是什麼意思?int 0... s 1 2i 3i 4n 1 i的4n次方 兩邊同時乘以i s 1 2i 3i 4n 1 i的4n次方 i s i 2i 2 4n i 4n 4n 1 i的4n 1次方 相減 s 1 i 1 i 2 i 4n 4n 1 i 4n 1 s 1 i 1 i 4n 2 1 i 4n 1 i 4n 1 i ... z m m 2 m 1 m 2m 3 i,1 由 m 2m 3 0 m 1 0 解得m 3 2 由 m m 2 m 1 0 m 2m 3 0 解得m 0或m 2 已知m r,複數z m?2m?1 m2 2m?3 i,當m為何值時 1 z r 2 z是純虛數 3 z對應的點位於復 1 z r m2 2...I3J3誰能幫我解釋下這個excel公式
設S 1 2i 3i4n 1 i的4n次方(n屬於N),則S
已知m R,複數z m m 2 m 1 (m2 2m 3)i