我正在研究一個我認爲簡化到以下問題並希望找到能夠以高效內存方式解決問題的數據結構或算法的問題。通過識別序列中的間隙來測試流的可靠性
假設您正在讀取序列號的(無限)蒸汽。有些製作人連續不斷地將數字發送到這個流中,而沒有重複,並從另一端讀取它們。但是有一些問題。
1.)這個系統有一些固有的不可靠性。流或生產者或其中之一可以丟棄一段數據,因此數字可能不會出現在消費者處,並且總體上存在任何給定數量可能丟失的(未知的)概率。
2.)流不能完全保證順序。爲了爭論起見,假設有一些(衆所周知的)常量N
,這樣如果您從流中讀取x
數字,您可以確定在該點之後,您將永遠不會看到數字流中的數字y < x - N
。
也就是說,數字序列在任何時候都只能是「無序」的N
值。
在這種情況下,我真的很想確定p
。或者p
的合理估計值是重要的。
我會很感激任何有關數據結構或算法的參考,這將有助於以有效的內存方式解決此問題。一些簡短的僞代碼也會有幫助。謝謝!
編輯:通過記憶效率我的意思是我希望能夠解決這個問題,而不必使用O(N)內存,其中N是從流中讀取的條目數。
我的確發現了類似的問題(http://stackoverflow.com/questions/15323362/what-is-the-most-efficient-datastructure-for-an-ordered-sequence-with-gaps-searc)但我不確定如何使用亂序問題。 – Moodragonx
你想根據這個描述來想出一個合理的'p'估計值嗎?或者你想根據收到的一些數據樣本來確定'p'的值? –
@JimMischel通過對數據進行採樣;我不相信你可以僅僅通過我所說的來估計'p'。雖然這會令人印象深刻。 – Moodragonx