在一年中的某些時候,來自火星的光速訊息可能需要 20 分鐘才能到達地球。如果這還不夠糟糕的話,太空輻射可能會翻轉一個或多個位元,翻轉意味著將 1 變為 0,反之亦然。因此,您被請來協助進行編碼。以下是您被告知的內容。
航天器將傳送一批訊息,每條訊息由 100 個位元加上一些額外的位元組成,如下所述。會不時出現太空噪聲突發,可能導致一個或多個連續的位元翻轉。翻轉的連續位元序列長度最多為 20。此外,這些突發事件最多會在傳輸 150 個位元的時間內發生一次。
我們將逐步解決最嘈雜的情況。
關於支援科學新聞
如果您喜歡這篇文章,請考慮透過以下方式支援我們屢獲殊榮的新聞報道 訂閱。透過購買訂閱,您正在幫助確保關於發現和塑造我們當今世界的想法的有影響力的故事的未來。
熱身:
假設噪聲突發最多隻能在傳輸 150 個位元的時間內翻轉一個位元。您需要在訊息中新增多少位元才能檢測到錯誤的存在?
假設噪聲突發最多隻能在傳輸 150 個位元的時間內翻轉一個位元。您需要在訊息中新增多少位元才能檢測到錯誤的存在?
解決方案:
只需一個額外的位元即可。計算 100 位元訊息中 1 的數量。將該數字稱為 N。如果 N 為偶數,則新增一個值為 1 的額外位元(第 101 個),如果 N 為奇數,則將額外的位元設為 0。(這在電子行業中稱為“奇偶校驗”)。當訊息(連同額外的位元)到達地球時,如果 101 個位元中 1 的數量為偶數,則表明出現錯誤。否則沒有錯誤。
只需一個額外的位元即可。計算 100 位元訊息中 1 的數量。將該數字稱為 N。如果 N 為偶數,則新增一個值為 1 的額外位元(第 101 個),如果 N 為奇數,則將額外的位元設為 0。(這在電子行業中稱為“奇偶校驗”)。當訊息(連同額外的位元)到達地球時,如果 101 個位元中 1 的數量為偶數,則表明出現錯誤。否則沒有錯誤。
問題
1. 接下來,讓我們假設噪聲突發將正好翻轉 20 個連續位元,或者根本不翻轉位元。那麼您需要多少額外的位元才能檢測到訊息中是否存在錯誤?
1. 接下來,讓我們假設噪聲突發將正好翻轉 20 個連續位元,或者根本不翻轉位元。那麼您需要多少額外的位元才能檢測到訊息中是否存在錯誤?
好的,如果您解決了這個問題,讓我們嘗試解決完整的問題。
2. 在傳輸 150 個位元的時間內,可能出現零次或一次噪聲突發。如果發生噪聲突發,它將翻轉最多 20 個位元的某個連續序列。那麼您需要多少額外的位元才能檢測到訊息中是否存在錯誤?(提示:我可以用少於 115 個位元做到這一點。)
這是一個開放性問題。在問題 2 的設定中,需要多少位元才能確定如此嘈雜的連續位元翻轉序列的開始和結束位置?您會如何做到這一點?