Ettfelsrättande kod; kombinatorik
Jag har fastnat på denna uppgift i kapitlet om kombinatorik och sannolikhet i diskret matematik:
"Om man har två olika meddelanden man vill kunna skicka kan man koda dem binärt som en enda bit (t.ex. ”ja”=1 och ”nej”=0). Ett problem med det är att det i enstaka fall uppstår överföringsfel (då en sänd etta uppfattas som en nolla eller vice versa) och då kommer meddelandet att missuppfattas. För att minska risken för det kan man istället använda en binär ettfelsrättande kod. Det innebär att varje meddelande kodas som en längre sträng av bitar, så att om en bit blir fel kan man upptäcka det och rätta till felet. Ett exempel på en sådan kod med två kodord för olika meddelanden är{111,000}.Om det blir fel i en bit när man skickar 111, så att det till exempel kommer fram som 101, så vet man att detmed stor sannolikhet var 111 som egentligen skickades. (Hade det varit 000 som kom fram som 101 skulle det ju ha behövt inträffa två fel i överföringen och det är mycket mindre sannolikt.) Om man vill kunna skicka fler än två meddelanden och ändå kunna rätta ett överföringsfel måste man använda längre kodord än tre bitar.Här är ett exempel på en ettfelsrättande kod med tre kodord av fem bitars längd:{11111,00011,01100}.
(a) Visa att denna kod verkligen är ettfelsrättande! Det gör ni genom att för varje kodord bilda mängden av alla strängar som kan uppstå genom att högst ett fel inträffar, och kontrollera att dessa mängder är disjunkta.
(b) Visa att antalet binära strängar av längd L bitar är 2^L."
För det första har jag svårt att förstå vad exakt de vill att jag gör på (a). Jag tänker att mängden av kodorden går ju att räkna ut. Men vad menas med att jag ska "bilda mängden av alla strängar som kan uppstå genom att högst ett fel inträffar"? Någon som kan utveckla och förklara hur jag ska tänka och mer exakt vad det är de vill att jag ska göra?
(b) fastnar jag också på då jag inte vet hur jag ska visa det. Har tittat lite på principerna osv men jag får inte ihop det. Jag vet ju att det stämmer.. Tips på hur jag ska tänka för att kunna visa det?
Tacksam för hjälp!
{11111,00011,01100}
11111 med ett fel kan bara bli
11110
11101
11011
10111
01111
00011 med ett fel kan bara bli
10011
01011
00111
00001
00010
Som du märker är dessa resultat disjunkta. Hur är det med 01100, vad kan det bli med ett fel? Är alla resultat fortfarande disjunkta? Om det är det så är koden ettfelsrättande.