當前位置:首頁 » 操作系統 » 中演算法

中演算法

發布時間: 2022-01-30 21:17:31

『壹』 如何理解離散數學中演算法的確定性

18·解:題中E、F分別在AA1、C1B1上,所以「」後的圖形中必須有AA1、C1B1;故「」方式有以下四種:(ⅰ)沿CC1將面ACC1A1和面BCC1B1至同一平面,如圖1,求得:EF2=;(ⅱ)沿BB1將面ABB1A1和面BCC1B1至同一平面,如圖2,求得:EF2=;(ⅲ)沿A1B1將面ABB1A1和面A1B1C1至同一平面,如圖3,求得:EF2=;(ⅳ)沿A1C1將面ACC1A1和面A1C1B1至同一平面,如圖4,求得:EF2=;比較可得(ⅳ)情況下,EF的值最小;故EF的最小值為.

『貳』 數據結構中演算法是一個什麼集合

演算法不是什麼集合,演算法只是一種思想,一種解決問題的思想。這種思想的表現,是依靠一些符號性的文字來表述的。演算法並不是可編譯可執行的源代碼,只是一種表現形式。用「虛」代碼來告訴你問題的解決途徑。

『叄』 C語言中演算法是程序的什麼

程序設計=數據結構+演算法。所謂演算法是指解決問題的具體方法是什麼。而數據結構是指所要解決的問題在計算機中的表示形式。所以在學C語言的時候只要先掌握演算法是如何實現的,即能夠把解決問題的方法用C語言描述出來,且描述的「好」即可.具體關於演算法的含義,有一門課叫「數據結構」有機會可以自學,計算機專業這門課都是必修課。

『肆』 高中演算法的一道題:

定義一個變數r為實數,
讀入r
再定義一個變數s,
s=r*r*3.14159(可以更加精確,看需求了)
然後輸出s就可以了

『伍』 計算機中演算法的基本概念有哪些

計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。一個演算法必須具備以下性質:
(1)演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。
(2)演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。
(3)每個步驟都有確定的執行順序,即上一步在哪裡,下一步是什麼,都必須明確,無二義性。
(4)無論演算法有多麼復雜,都必須在有限步之後結束並終止運行,即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。
一個問題的解決方案可以有多種表達方式,但只有滿足以上4個條件的解才能稱之為演算法。

『陸』 高中演算法 急急

告訴你樓主,你申請了兩個號,等著其中一個被封吧!
自己提問自己回答自己採納,可惡!
像種人擺明是刷分的,大家都別理他
http://..com/question/34791009.html

『柒』 誰給說說派(圓周率)的4中演算法

為什麼要算 PI?計算機最原始的用途就是進行人類無法完成的復雜運算,算 PI 就是這樣的運算之一。雖然算 PI 本身沒有多大的實際意義,但是對於計算機愛好者來說作為一種編程的挑戰,還是很有意思的。算 PI 看似簡單,其實它還牽涉到一些有用的數學知識。第一類演算法:arctan 的級數展開PI/4 = 4 arctan(1/5) - arctan(1/239) (1)arctan(x) = x - x3/3 + x5/5 - x7/7 + .... (2)很容易想到,要得到超高精度的 PI 值,實數在計算機中必須以數組的形式進行存取,數組的大小跟所需的有效位數成正比。在這個演算法中,PI 的有效位數 n 隨 (2) 的求和項數線性增加。而為計算 (2) 中的每一項,需要進行超高精度實數除以小整數(52, 2392, 2k+1)的循環,循環所需次數也跟 n 成正比。所以,這個演算法總的時間復雜度為 O(n2)。這個演算法的優點是簡單,而且只需要進行整數運算。下面給出我寫的算 PI 程序。在程序中,我採用了一些提高速度的措施:超高精度實數以數組的形式進行存取,數組元素的類型為 64 位整數(long long),每個元素儲存 12 個十進制位;對 xk (x = 1/5, 1/239) 的頭部和尾部的 0 的數量進行估計,只對非 0 的部分進行計算。另外,還有許多跟 (1) 類似的式子,但不常用。例如:PI/4 = arctan(1/2) + arctan(1/3)PI/4 = 8 arctan(1/10) - arctan(1/239) - 4 arctan(1/515)第二類演算法:與 1/PI 有關的級數1/PI = (sqrt(8) / 9801) sumk=0~inf { [(4k)! (1103 + 26390k)] / [(k!)4 3964k] } (Ramanujan)1/PI = (sqrt(10005) / 4270934400) sumk=0~inf { [(6k)! (13591409 + 545140134k)] / [(k!)3 (3k)! (-640320)3k] } (Chudnovsky)以上兩個級數(還有其它類似形式的級數,但不常用)比起 arctan 的泰勒級數要復雜得多。雖然仍然是線性收斂,總的時間復雜度也仍然是 O(n2),但它們的收斂速度相當快, (Ramanujan) 每項可以增加 8 位有效數字, (Chudnovsky) 每項可以增加 14 位。在這個演算法中,除了要進行超高精度實數(數組形式)和小整數的運算外,還有一次超高精度實數的開方和倒數的運算,這需要用到 FFT(快速傅立葉變換),在下文敘述。第三類演算法:算術幾何平均值和迭代法算術幾何平均值(Arithmetic-Geometric Mean, AGM) M(a, b) 定義如下:a0 = a, b0 = b
ak = (ak-1 + bk-1) / 2, bk = sqrt(ak-1 bk-1)
M(a, b) = limk->inf ak = limk->inf bk然後,由橢圓積分的一系列理論(抱歉,過程我不懂)可以推導出如下公式:a0 = 1, b0 = 1 / sqrt(2)
1/PI = { 1 - sumk=0~inf [2k (ak2 - bk2)] } / 2M(a0, b0)2 (AGM)根據這條公式可以制定適當的迭代演算法。在迭代過程中,有效位數隨迭代次數按 2 的指數增加,即每迭代一次有效位數乘 2。演算法中的超高精度實數的乘、除、開方等運算需要使用 FFT,在下文敘述。綜合考慮 FFT 的時間復雜度,整個演算法的時間復雜度約為 O(n log(n)2)。除了 (AGM) 以外,還有其它的迭代序列,它們具有同樣的時間復雜度。例如下面的這個序列將按 4 的指數收斂到 1/PI:y0 = sqrt(2) - 1, a0 = 6 - 4 sqrt(2)
yk = [1 - sqrt(sqrt(1 - yk-14))] / [1 + sqrt(sqrt(1 - yk-14))], ak = (1 + yk)4 ak-1 - 22k+1 yk (1 + yk + yk2)
1/PI = limk->inf ak (Borwein)FFT如上所述,第二和第三類演算法不可避免地要涉及超高精度實數(數組形式存取的多位數)的乘、除、開方等運算。多位數乘法如果按照常規方法來計算,逐位相乘然後相加,其時間復雜度將達到 O(n2)。使用 FFT 可大大減少計算量。設有復數數組 a[k] 和 b[k] (k=0~n-1),正向和反向的離散傅立葉變換(DFT)定義如下: (i = sqrt(-1))b = FFTforward(a) : b[k] = sumj=0~n-1 ( a[j] e-i*j*2PI*k/n ) (3)b = FFTbackward(a) : b[k] = (1/n) sumj=0~n-1 ( a[j] ei*j*2PI*k/n ) (4)(3) 和 (4) 中的 (1/n) 可以放在任何一個式子中,也可以拆成 (1/sqrt(n)) 同時放在兩個式子中,目的是保證正向和反向傅立葉變換以後不會相差一個因子。當 n 的所有素因子均為小整數,尤其是當 n 為 2 的整數次冪的時候,使用適當的演算法經過仔細的協調,可以避免多餘的計算,使離散傅立葉變換 (3) 和 (4) 減少至 O(n log(n)) 的時間復雜度,即所謂的快速傅立葉變換(FFT)。具體的細節請查閱相關書籍。下面給出我寫的一段 FFT 程序,僅供參考。另外也有已經開發的 FFT 函數庫,例如 FFTW ,可以直接使用。fft.cpp FFT 的 C++ 源程序利用 FFT,要計算 n1 位和 n2 位的兩個多位數乘法,可以這樣進行:開辟兩個長度為 n(n>=n1+n2,取 2m 最佳) 的復數數組,將兩個多位數從低位到高位分別填入,高位補 0。對兩個數組分別進行正向傅立葉變換。將得到的兩個變換後的數組的對應項相乘,然後進行反向傅立葉變換,最後得到一個結果數組。由於傅立葉變換是在復數域中進行的,因此還要對結果數組進行取整和進位,才能得到最終的乘積。值得留意的是傅立葉變換的精度問題。我們知道,在計算機中實數用單精度數或雙精度數表示,它們會存在一定的誤差。在計算多位數乘法時,n 往往是一個很大的數字,傅立葉變換過程中需要對數組的每一項進行求和,如何保證精度帶來的誤差不會因為求和而超出允許的范圍?我的觀點是必須使用雙精度實數,而且由於統計特性,精度帶來的誤差在求和過程中不會很大,一般不會影響計算的正確性。如果需要保證計算的正確性,我想到兩種檢查方法。第一種是取模驗算。例如,如果乘數和被乘數對 17 的模分別是 8 和 6,那麼積對 17 的模就應該是 14。第二種是檢查運算結果中浮點數偏離整數的最大值。如果偏差只有比如 10-3 量級,我們可以認為這個尺度的乘法運算很安全;如果偏差達到 0.5,說明運算已經出錯了;如果偏差達到 0.1 量級,那也比較危險,也許換個別的乘數和被乘數就溢出了。多位數的倒數和開方可以通過牛頓迭代求根法轉化為乘法運算。例如,要計算 x = 1/a ,根據牛頓迭代法令 f(x) = 1/x - a ,可以得到以下迭代序列:x0 ~= 1/a
xk = xk-1 - f(xk-1)/f'(xk-1) = 2xk-1 - axk-12 (5)要計算 x = sqrt(a) ,可以先計算 x = 1 / sqrt(a) ,令 f(x) = 1/x2 - a ,可以得到以下迭代序列:x0 ~= 1 / sqrt(a)
xk = xk-1 - f(xk-1)/f'(xk-1) = (3/2)xk-1 - (1/2)axk-13 (6)(5) 和 (6) 均以 2 的指數收斂到所求結果。還存在其它更復雜一些的迭代序列,它們以更高的指數收斂,在此不提。不過需要提醒的是,跟 (AGM) 不同,這里 (5) 和 (6) 中的 x0 只是 1/a 和 1 / sqrt(a) 的約值,在前幾次的迭代中不必進行滿 n 位數的乘法運算,因而可以減少計算量。

『捌』 計算機中演算法功能有哪些

一個程序的核心在於演算法。比如說打開一個軟體和運行一個軟體的速度在計算機硬體性能相同情況下,軟體的演算法起到了幾近決定性作用,所有的計算機軟體和硬體的編程都是需要演算法的,就算一個hello world程序雖然我們編時候沒有用到演算法但是在編譯他和運行再屏幕顯示的時候就是演算法了。演算法是計算機乃至自然界的核心,如果知道人腦的演算法,就可以製造出人工智慧的軟體。

『玖』 高中演算法

輸入值呢?

熱點內容
java編譯器中文版 發布:2024-11-15 07:11:56 瀏覽:247
伺服器請求慢怎麼排查 發布:2024-11-15 06:55:35 瀏覽:320
php自學還是培訓 發布:2024-11-15 06:54:05 瀏覽:182
在哪裡找到sim卡設置密碼 發布:2024-11-15 06:51:47 瀏覽:392
細說phppdf 發布:2024-11-15 06:38:35 瀏覽:276
征途PK腳本 發布:2024-11-15 06:37:51 瀏覽:680
vbs打不開編譯器錯誤 發布:2024-11-15 06:35:12 瀏覽:344
深海迷航密碼在哪裡 發布:2024-11-15 06:30:23 瀏覽:303
伺服器日誌怎麼分析 發布:2024-11-15 06:22:04 瀏覽:525
字體目錄在哪個文件夾 發布:2024-11-15 06:20:28 瀏覽:181