我有這個功課,但我不能完成它,因爲我只能使用關係運算符和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. 如何在數組中找到最接近的素數到該數組中的另一個數?
- 2. 計算一個值並舍入到最接近的整數
- 3. 計算數組中元素的個數
- 4. 計算一個數字的面額的最大最佳組合
- 5. 我必須找到沒有數組的兩個最小數字
- 6. 數組PHP計算字數
- 7. 計算數組中所有兩個數字整數的總和
- 8. 如何從另一個數組的計算創建一個數組excel vba
- 9. copy元素到另一個數組
- 10. 如何在MATLAB中獲得接近另一個數組的數組元素?
- 11. 計算兩個數組元素出現在一起的次數
- 12. 計算數組中的元素數 - C
- 13. Javascript分配數組到另一個數組的元素
- 14. 如何計算一個數組中有多少個最大值?
- 15. PHP得到一個數字數組元素的所有的foreach
- 16. 爲另一個數組中的所有值查找一個數組的最接近的索引 - Python/NumPy
- 17. 計算最接近從數組值組合
- 18. 計算一個數組中2個值之間的數字量
- 19. 從一個數組到另一個數組傳遞隨機值沒有重複
- 20. 如何找到數組中每個元素的最近值?
- 21. 在沒有使用數組的情況下在另一個數字中找到一個數字
- 22. 如何獲得一個數組來計算有多少個數字,而不是統計每個數字的值?
- 23. 計算一個數組中的數字的頻率
- 24. php - 用另一個數組的元素替換數組元素?
- 25. 數組中的最後一個元素後沒有逗號?
- 26. 數組複製到另一個數組
- 27. 使用數組計算素數
- 28. 查找最接近給定數字的數組中的數字
- 29. 證明長度函數來計算字符數組元素數
- 30. 一維數組元素上的最近鄰元素操作
聽起來更多的數學問題,看看這個http://mathworld.wolfram.com/PrimalityTest.html並選擇一個算法,在Java或谷歌實現它的算法之一的Java的實現 –
您的問題是很難明白。但這是你的事實。如果你需要你的代碼快**,你將不得不使用數組(或篩選算法)或涉及複雜數學的概率素性測試。你的**確實**,你的老師已經要求你提供一個快速的課程嗎?我懷疑他/她沒有......而你只是讓自己難過! –
從老師的角度來看,這個練習的重點是讓學生學習使用算術,關係運算符和簡單的控制結構編寫程序。用於尋找素數的快速算法幾乎可以肯定*超出了範圍*的入門編程課程。我的建議是:按照要求提出要求,花費你在學習其他方面所節省的時間。 –