Wykrywacz błędów
Kable szumią, ludzie robią literówki, kurz siada na płytach. Skąd komputer wie, że coś się popsuło? Dokłada do danych kilka dodatkowych cyfr, które pilnują reszty. Sprawdź, jak działa bit parzystości, sztuczka z kartami, PESEL i kod kreskowy.
1 · najprostszy strażnikBit parzystości
Litera to w komputerze 7 bitów. Nadawca dokłada ósmy bit tak, żeby jedynek było zawsze parzyście. Odbiorca liczy jedynki. Jeśli wyszło nieparzyście, coś się po drodze zepsuło. Klikaj bity u odbiorcy, żeby udawać zakłócenia.
A gdyby wysłać 1000 liter?
Każdy bit może się zepsuć z pewną szansą. Zobacz, ile błędów bit parzystości wyłapie, a ile przemknie niezauważonych.
2 · sztuczka magicznaKtóra karta jest odwrócona?
Ta sama sztuczka działa w pamięci komputerów i na dyskach. Bit parzystości w każdym wierszu i każdej kolumnie pozwala nie tylko zauważyć błąd, ale też wskazać, gdzie jest, i go naprawić.
- Ułóż karty 5 × 5 (możesz klikać, żeby je odwracać).
- Komputer dokłada karty kontrolne (żółta ramka), żeby w każdym wierszu i kolumnie było parzyście czarnych.
- Odwróć jedną dowolną kartę. Na lekcji: nauczyciel odwraca się tyłem!
- Komputer szuka odwróconej karty.
3 · suma kontrolnaPESEL: ostatnia cyfra pilnuje reszty
Numer PESEL ma 11 cyfr. Pierwsze 6 to data urodzenia, potem 4 cyfry porządkowe (przedostatnia mówi o płci), a ostatnia to cyfra kontrolna. Wystarczy pomylić się w jednej cyfrze, a urząd od razu zobaczy, że numer jest zły.
Wiersze: cyfra · waga · iloczyn · ostatnia cyfra
4 · w każdym sklepieKod kreskowy EAN-13
Pod paskami na opakowaniu jest 13 cyfr. Ostatnia to znowu cyfra kontrolna, tym razem z wagami 1 i 3 na zmianę. Gdy kasa źle odczyta jeden pasek, suma się nie zgodzi i kasa zapiszczy, żeby zeskanować jeszcze raz.
Wpisz 12 cyfr, a aplikacja doliczy trzynastą, albo 13 cyfr, żeby sprawdzić cały kod.
Wiersze: cyfra · waga · iloczyn
5 · wszędzie wokółGdzie jeszcze są strażnicy?
Zielone tylko wykrywają błąd. Niebieskie potrafią go też naprawić.
Ostatnia cyfra karty to cyfra kontrolna. Sklep internetowy od razu wie, że wpisałeś numer z literówką.
Dwie cyfry po „PL” pilnują całego numeru. Bank nie wyśle przelewu na konto z literówką.
Kod kreskowy książki zaczyna się od 978 lub 979 i ma taką samą cyfrę kontrolną jak inne produkty.
Każda porcja danych w sieci ma sumę kontrolną. Uszkodzona paczka jest wyrzucana i wysyłana jeszcze raz.
Kod QR działa nawet z logo na środku, bo może odtworzyć do 30% zniszczonych danych.
Działa jak sztuczka z kartami: znajduje zepsuty bit i od razu go odwraca.
Porysowana płyta gra dalej, a zdjęcia z sond kosmicznych docierają przez miliardy kilometrów szumu.
Sprawdź się
Punkty 0 · Seria 0 · Rekord 0Jak komputer wykrywa błędy?
Do danych dokłada się trochę nadmiarowych informacji, obliczonych z pozostałych danych: bit parzystości, cyfrę kontrolną albo sumę kontrolną. Odbiorca liczy to samo jeszcze raz. Jeśli wynik się nie zgadza, dane zostały uszkodzone. To jest wykrywanie błędów.
Gdy dodatkowych informacji jest więcej i są sprytnie ułożone, da się nie tylko zauważyć błąd, ale też wskazać jego miejsce i go poprawić. To jest korekcja błędów, tak jak w sztuczce z kartami, w kodzie QR czy w pamięci ECC.
Cyfra kontrolna PESEL krok po kroku
1. Pomnóż 10 pierwszych cyfr przez wagi 1, 3, 7, 9, 1, 3, 7, 9, 1, 3. 2. Dodaj wyniki. 3. Weź ostatnią cyfrę sumy. 4. Cyfra kontrolna to 10 minus ta cyfra (a gdy ostatnia cyfra sumy to 0, cyfra kontrolna też jest 0). Wagi 1, 3, 7 i 9 nie mają wspólnych dzielników z 10, dlatego każda pomyłka w jednej cyfrze zmienia wynik.
Historia w pigułce
- 1950Richard Hamming z Bell Labs publikuje kody, które same poprawiają błędy. Wymyślił je, bo komputer przerywał mu obliczenia w weekendy przy każdym błędzie.
- 1954Hans Peter Luhn z IBM zgłasza patent na cyfrę kontrolną, której do dziś używają karty płatnicze.
- 1974W amerykańskim sklepie pierwszy raz skanuje się kod kreskowy przy kasie: na opakowaniu gumy do żucia.
- 1977Powstaje europejski kod EAN. Polska dostaje prefiks 590 w 1990 roku.
- 1979W Polsce rusza system PESEL z cyfrą kontrolną na końcu numeru.
Najczęstsze pytania o wykrywanie błędów
Czym jest bit parzystości?
To dodatkowy bit dopisany do danych tak, żeby liczba jedynek była parzysta. Jeśli odbiorca policzy nieparzystą liczbę jedynek, wie, że wystąpił błąd. Bit parzystości nie wykryje jednak dwóch błędów naraz, bo wtedy liczba jedynek znów jest parzysta.
Jak obliczyć cyfrę kontrolną numeru PESEL?
Pomnóż pierwsze 10 cyfr przez wagi 1, 3, 7, 9, 1, 3, 7, 9, 1, 3 i dodaj wyniki. Weź ostatnią cyfrę sumy i odejmij ją od 10. Jeśli ostatnia cyfra sumy to 0, cyfra kontrolna też wynosi 0.
Jak sprawdzić, czy kod kreskowy EAN-13 jest poprawny?
Pomnóż cyfry na pozycjach nieparzystych przez 1, a na parzystych przez 3, licząc wszystkie 13 cyfr, i dodaj wyniki. Kod jest poprawny, jeśli suma dzieli się przez 10.
Czy kod kreskowy zaczynający się od 590 oznacza produkt z Polski?
Niekoniecznie. Prefiks 590 oznacza, że numer nadała polska organizacja GS1, czyli firma jest w niej zarejestrowana. Sam produkt może być wyprodukowany w innym kraju.
Czym różni się wykrywanie błędów od ich korekcji?
Wykrywanie mówi tylko, że coś jest nie tak, i wtedy trzeba poprosić o dane jeszcze raz. Korekcja wskazuje, gdzie jest błąd, i sama go naprawia. Do korekcji potrzeba więcej dodatkowych danych, na przykład parzystości w wierszach i kolumnach.
Czy cyfra kontrolna chroni przed oszustwem?
Nie. Chroni przed przypadkowymi pomyłkami, ale każdy może obliczyć poprawną cyfrę kontrolną dla zmyślonego numeru. Przed celowym fałszerstwem chronią podpisy cyfrowe i inne metody kryptografii.