我有這個功課,但我不能完成它,因爲我只能使用關係運算符和if-else/while,我不能使用庫和方法,只有關係運算符和If或while時,我開始檢查如果限制的數字是素數,首先檢查If/by 2 3 5 7和11是否我用數字的平方根之前的每個數字嘗試百分比(以確定它是否爲是總理),但它只需要很多時間來做到這一點,我怎麼能用更少的時間來計算它,對於英語是一個難得的解釋抱歉。計算最近的素數到另一個數字沒有數組
1
A
回答
0
沒有陣列,唯一的另一種選擇是有一些Eratosthenes篩選器(對於任何希望比試驗部門有更好的複雜性比原始性測試),我知道的是懶惰列表,它可以模擬發電機。在僞代碼,
primes = [2..] \ [[p*p, p*p+p, ...] for p in primes]
與起點這成爲
primesFrom n = [n..] \ unionAll(
[[s,s+p..] for each p in psq
where psq = primes upto (2 * sqrt(n)),
where s = div(n+p-1, p) * p])
,我們只希望帶着它產生的第一號。 工會這裏當然是一個訂購一,訂購,增加來源,以有序的方式產生其結果,一個接一個從較小的值到較大的值。
平方根的兩倍用於覆蓋範圍中最大的prime gap的想法。您可以通過查找範圍的主要差距的精確值來使其更加精確。 psq
素數可以在發生器中與試驗師一同發現。
但是現在你需要維護這個發生器集合[s,s+p..]
在某個地方,並且仍然禁止使用數組。
鏈表是一種可能性。它也可以效仿,與每個closures本地靜態存儲嵌套遞歸函數,創建它們對初始化鏈,像
= [n..] \
([s1,s1+p1..] ∪
([s2,s2+p2..] ∪
([s3,s3+p3..] ∪ (.... [sk,sk+pk..] ....))))
你可以看到一個例子something just like this,在圍棋,here(和a faster one),儘管它實現的\
S(鏈沒有∪
S),
= (((....([n..] \
[s1,s1+p1..]) \
[s2,s2+p2..]) \
[s3,s3+p3..]) \ ....) \ [sk,sk+pk..]
這可能是乾脆做一個容易的事情。
該∪
s雖然可以安排in a tree,爲額外的complexity advantage。也許是一個有趣的項目。
相關問題
- 1. 計算最接近的數字numpy
- 2. 如何在數組中找到最接近的素數到該數組中的另一個數?
- 3. eval沒有將字符串數組計算到數組中
- 4. 計算一個值並舍入到最接近的整數
- 5. 計算數組中元素的個數
- 6. 計算一個數字的面額的最大最佳組合
- 7. 如何找到距離另一個數組元素x最近的數組元素?
- 8. 查找數組中最近的一組數值到一個數組中
- 9. 找到一個數字的最接近的倍數到另一個數字 - 目標C
- 10. 一個數組中的所有數字都是<=到另一個數組
- 11. 我必須找到沒有數組的兩個最小數字
- 12. 數組PHP計算字數
- 13. 計算數組中所有兩個數字整數的總和
- 14. 如何按元素計算數組和數字元素之間的最大值?
- 15. 如何從另一個數組的計算創建一個數組excel vba
- 16. copy元素到另一個數組
- 17. 計算兩個數組元素出現在一起的次數
- 18. 如何在MATLAB中獲得接近另一個數組的數組元素?
- 19. 寫一個函數計數(數字,數組,長度),它將計算數字出現在數組中的次數
- 20. 如何計算一個數組中有多少個最大值?
- 21. 計算數組中的元素數 - C
- 22. 計算數組中元素的數量
- 23. 1000個數字的字符串,找到沒有數組的最大5位數
- 24. 沒有數組元素的計數數組
- 25. 下一個最小最接近的數字得到一個小數
- 26. 將數組的元素追加到另一個數組
- 27. 計算數組的最小數
- 28. 計算哪個繪製的圓是最接近另一個的
- 29. 計算最接近從數組值組合
- 30. 爲另一個數組中的所有值查找一個數組的最接近的索引 - Python/NumPy
聽起來更多的數學問題,看看這個http://mathworld.wolfram.com/PrimalityTest.html並選擇一個算法,在Java或谷歌實現它的算法之一的Java的實現 –
您的問題是很難明白。但這是你的事實。如果你需要你的代碼快**,你將不得不使用數組(或篩選算法)或涉及複雜數學的概率素性測試。你的**確實**,你的老師已經要求你提供一個快速的課程嗎?我懷疑他/她沒有......而你只是讓自己難過! –
從老師的角度來看,這個練習的重點是讓學生學習使用算術,關係運算符和簡單的控制結構編寫程序。用於尋找素數的快速算法幾乎可以肯定*超出了範圍*的入門編程課程。我的建議是:按照要求提出要求,花費你在學習其他方面所節省的時間。 –