確定性素性測試思想之Eratosthenes篩選法

2021-07-31 13:34:25 字數 868 閱讀 8149

素數:如果n (n > 1) 是素數, 當且僅當n只有因子1和它本身 ;

應⽤於:

數學: 自然數可由全體素數基底表達 

密碼學: 構建基於rsa和橢圓曲線的公鑰密碼學核心 

一般方法: 判斷n是否被i整除 (i = 2, 3,…, n1/2) ➡ 如果j > n1/2是n的因⼦子, 總能找到i < n1/2, 滿⾜足n = i * j 

已知的判斷素數的檢測方法中的次數可達到sqrt(n),為進一步減少判斷次數,引入一種確定性素性測試思想,刪減可能存在合數,減少合數重複判斷eratosthenes篩選。

實驗原理:

(1)確定待篩選集合;

(2)基於的eratosthenes篩選;(從而開始遞增的素數的倍數被標記為0)

(3)篩選後元素與n的整除判斷n

**實現:

#include #include using namespace std;

int main()

;//初始化為0,用於記錄的陣列

int c = 0;//count計數

for (int i = 2; i <= sqrt(a); i++)

for (int i = 2; i <= sqrt(a); i++)

}c++;

b[c] = i;//初始化陣列b,記錄下符合條件的基數(素數)i

} for (i = 1; i <= c; i++) }

if (i > c)

{ cout <

vs2015編譯環境執行結果:

函式的確定性

函式的確定性是指 傳入的引數一定,無論函式被呼叫多少次,都會返回相同的值!對於具有確定性的函式,在定義時,使用deterministic選項,以告知oracle將建立乙個確定性函式.函式額確定性 create or replace function get tax p salary number r...

重視不確定性

面臨兩種選擇時,多數人認為最重要的是從中選擇,然而設計 無論是軟體設計還是其他設計 並不是這樣的。當你面對兩種可能性時,應該仔細考慮設計中存在的不確定性。不確定性可以促使你推遲決定 譯註1 收集更多的資訊 促使你使用分隔 partition 和抽象 abstract 的方法來降低設計決策的重要性 譯...

不確定性推理

不確定性推理 是指建立在不清楚,不明確的知識和證據基礎上的推理,不完備 不精確的知識推理,模糊知識推理。多種原因導致同一結論。解題方案不唯一,現實生活中的問題有很多解決方案,這些方案之間很難決定誰優誰劣,所以選擇認為較優的方案,就屬於一種不確定性推理。所需知識不完備,不精確。所需知識描述模糊。知識的...