任何人都可以請布倫特週期檢測算法幫助我。我不明白爲什麼「尋找比λ和μ都大的兩個2^i的最小冪」? 2的權力如何在循環檢測中發揮作用。它與弗洛伊德的週期檢測算法有什麼關係?我無法從基礎知識中獲得它。請幫忙 !布倫特週期檢測算法
回答
此方法使用增加步驟(1,2,4,8 ...)儘快在循環內得到的。當P = 2^k變得大於λ和μ時,龜(T)在循環中,並且兔子(H)不超過P個步驟再次與(站立)龜相遇。似乎有些模擬會很有用。讓我們有列表0-1-2-3-4-5-6-7-3
P=1 T=0 H=0; H makes 1 step and doesn't meet T
P=2 T=1 H=1; H makes 2 steps and doesn't meet T
P=4 T=3 H=3; H makes 4 steps and doesn't meet T
P=8 T=7 H=7; H makes 5 steps and meets T !!!!!
注意:隨着P = 4,T是內循環,但野兔不經過整個週期(P> =μ但是P<λ)
所以我們發現了μ< 8和λ= 5。然後,我們希望找到μ(環入口點)
T=0 H=0; H makes 5 steps; H=5
while T <> H
move both
T=1 H=6
T=2 H=7
T=3 H=3 !!!!!!!
我們剛剛發現μ= 3
Thanx ...那幫了很多:) – SlashGeek
你能解釋爲什麼這裏使用「兩個冪」?如果我們的目標是儘快讓兔子進入圈內,爲什麼不使用「3的冪」或「5的冪」?如果使用「5的冪」,該算法是否仍然有效?最後,爲什麼λ等於在遇到烏龜之前做的最後一步兔子的數量?我們必須把這個數字作爲循環的長度來證明什麼?謝謝。 – carawan
@carawan,我猜想3的權力和5的權力也工作,雖然我沒有證據。我做了一些簡單的測試。
如果較慢的迭代器根本沒有移動,那麼該算法會被破壞,因爲較慢的迭代器可能在循環之外。
如果較慢迭代後擋板越快迭代和下面的距離總是始終低於固定限制(如99),則該算法被打破,因爲環的大小可以超過99
如果下面的距離逐漸增大,以及追隨者確實移動,那麼我認爲他們最終會見面。 –
- 1. 週期檢測算法
- 2. 圖算法檢測偶數週期
- 3. 水豚/ Poltergeist和布倫特裏測試
- 4. 週期檢測含有多個週期
- 5. 布倫特算法的向量化版本(查找根)
- 6. Bellman-Ford算法檢測到什麼?負重或負週期?
- 7. result.credit_card_verification在布倫特裏
- 8. 布倫特函數調用
- 9. 使用sql檢測週期
- 10. cp:檢測到週期:
- 11. scons檢測依賴週期
- 12. 檢測週期在圖
- 13. 「檢測到佈局週期,佈局無法完成。」 Silverlight中的錯誤
- 14. 插入期間檢測週期
- 15. 週期尋找算法
- 16. 最佳實踐來檢測,如果2個客戶嘗試在布倫特裏
- 17. 特徵檢測算法的實現
- 18. 在無向圖的DFS-XOR週期檢測中去除假週期算法結果
- 19. 從特定期間計算的週數
- 20. 佈局週期檢測到的錯誤Windows 8.1 Gridview
- 21. 圖:在一個週期中檢測週期
- 22. 布倫特裏沙盒測試(假的隨機數)
- 23. 的Java基準測試中Ellipticgroup /布倫特·博耶
- 24. MATLAB使用特徵值算法檢測到的對象周圍的邊界框
- 25. 用於檢測不連續圖中的週期的最佳並行算法
- 26. 週期檢測算法:龜和兔子是否有條件進入循環?
- 27. 弗洛伊德算法 - 週期檢測 - 沒有終止的例子
- 28. 單一算法在定向和非定向圖上工作以檢測週期?
- 29. 這是在無向圖中檢測週期的最佳算法嗎?
- 30. 用於檢測未知週期中的位置的算法(時間序列)
@WillNess這是什麼都與素數呢?我認爲素數標籤應該被刪除。 – gsingh2011
@ gsingh2011它用於素分解算法。也許素數分解標籤應該被添加/替換質數... :) –