Czy wiesz, że we Wrocławiu mieszka kilkadziesiąt osób, które znają twój PIN do karty?
To nie znaczy, że powinieneś przestać czytać ten artykuł i natychmiast zająć się zmianą PINu. To nic nie pomoże. Inna grupa już czeka w pogotowiu i twój nowy PIN będzie znany, zanim w ogóle zdążysz go ustawić. Więcej: zanim zdążysz go wymyślić!
Jak to możliwe? Czy ci wszyscy Wrocławianie mają zdolność czytania myśli i przewidywania przyszłości? Czy nasze pieniądze w bankach nigdy już nie będą bezpieczne, bo zagraża im gang jasnowidzów-telepatów? Spokojnie! Sprawa ma znacznie prostsze wytłumaczenie. Kiedy się z nim zapoznasz, zyskasz pewność, że twoje pieniądze na koncie są dokładnie tak bezpieczne, jak były do tej pory.
Zastanówmy się najpierw, ile jest wszystkich możliwych czterocyfrowych kodów. Istnieje kilka sposobów, żeby się o tym przekonać; ja pokażę dwa. Nie dlatego, że jeden by nie wystarczył, tylko uważam, że każdy z nich jest wart zainteresowania.
Sposób 1
Jak przeczytać na głos “1234”? To zależy od kontekstu. W zdaniu “wpisz kod 1234” prawdopodobnie powiesz “jeden-dwa-trzy-cztery”, ale jeśli chcesz przekazać, że szkoła ma 1234 uczniów, to będzie to już “tysiąc dwieście trzydziestu czterech”. Podobnie każdy inny czterocyfrowy kod odpowiada dokładnie jednej liczbie naturalnej o czterech lub mniej cyfrach. Dlaczego “lub mniej”? PIN może zaczynać się od zera, ale zapis dziesiętny liczby naturalnej już nie. Dlatego na przykład kod 0067 odpowiada liczbie dwucyfrowej 67.
Takie liczby łatwo policzyć, bo są przecież są ustawione po kolei i ponumerowane od 0 do 9999. Ile jest ich razem? Jeśli odpowiedziałeś, że 9999, to prawie masz rację. Popełniłeś częsty błąd, który nazywa się błędem pomyłki o jeden – po angielsku off-by-one error – ale o tym innym razem. Na razie wystarczy zauważyć, że liczb, które liczymy, byłoby 9999, gdyby dało się je ponumerować od 1 do 9999 – a z zerem jest ich o jedną więcej, czyli 10 000.
Sposób 2
Wyobraź sobie, że wybierasz sobie nowy PIN. Robisz to krok po kroku, najpierw pierwszą cyfrę, potem drugą i tak dalej. Mamy do dyspozycji 10 różnych cyfr (od 0 do 9), więc pierwszą cyfrę możemy wybrać na 10 sposobów. Do każdej z możliwych pierwszych cyfr można dobrać drugą również na 10 sposobów, razem więc mamy 10⋅10 = 100 możliwości wyboru pierwszych dwóch cyfr, 10⋅10⋅10=1000 wyboru pierwszych trzech – i wreszcie 10⋅10⋅10⋅10 = 10⁴ = 10000 możliwości wyboru całego czterocyfrowego kodu.
Jak widać, liczba możliwych kodów, w których każdy znak wybieramy z określonego zbioru elementów, zależy tylko od długości kodu, który tworzymy (na przykład PIN ma cztery cyfry, a PESEL – 11), oraz od liczby elementów zbioru, z którego wybieramy znaki (na przykład w numerach rejestracyjnych samochodów występują także litery, więc ten zbiór jest znacznie większy). Jeśli długość kodu oznaczymy literą k, a liczbę elementów zbioru znaków – literą n, to będziemy mieli nᵏ możliwych kodów. W kombinatoryce takie kody nazywa się wariacjami z powtórzeniami, nᵏ jest więc liczbą k-elementowych wariacji z powtórzeniami ze zbioru n-elementowego.
Gang telepatów?
Przyjrzyjmy się teraz potencjalnym użytkownikom tych kodów. Wrocław liczy niewiele mniej niż milion mieszkańców (cała aglomeracja nawet ponad milion). Większość z nich ma kartę z PINem, niektórzy nawet po kilka. Kart jest znacznie więcej niż możliwych PINów, te ostatnie muszą się więc powtarzać. Jeden unikalny kod PIN przypada średnio na około 100 mieszkańców. Nie znaczy to, że każdego kodu używa dokładnie 100 osób – niektóre mogą być bardziej popularne, zwłaszcza jeśli użytkownicy sami je wybierają, a inne rzadsze. Niektóre mogą nawet w ogóle nie wystąpić! Być może akurat twój PIN jest jedyny i nikt inny go nie używa. Ale statystycznie rzecz biorąc jest dokładnie tak, jak zostało napisane na wstępie: kilkadziesiąt osób we Wrocławiu zna twój PIN, bo… to jest także ich PIN. Wcale nie muszą być telepatami.
Autorem tekstu jest Nauczyciel: Katarzyna Dymara



