Numer PESEL to pomyłka

Idealny świat programistów psuje się na takich prostych rzeczach jak sprawdzenie poprawności numeru PESEL. Zamiast się w to bawić, lepiej iść na kawę.
Marcin Kosedowski, foto: Ivan Marianelli
Niedawno stwierdziłem, że maklerzy giełdowi powinni zająć się piciem kawy i oddać władzę nad giełdą komputerom. Zasugerowałem, że można by wyeliminować część błędów przez sprawdzanie poprawności wpisywanych przez nich danych. Właściciele giełdy powinni wziąć do tego jakiegoś gimnazjalistę, który za dwie dychy napisze walidator i zapobiegnie milionowym stratom.
To był głupi pomysł.
Reklama Środki antykoncepcyjne kupuję zawsze w aptece internetowej apteka-zielona.pl
O czym mówi numer PESEL?
W komentarzach wyszedł prostszy przykład niż giełda - numery PESEL. Każdy gimnazjalista wie, że to 11-cyfrowy, stały symbol numeryczny, jednoznacznie identyfikujący określoną osobę fizyczną
. Jako że jest to cytat z Wikipedii, w dodatku wyrwany z kontekstu, to nie ma w nim grosza prawdy. Nie jest ani stały, ani jednoznacznie identyfikujący określoną osobę. Nie jestem nawet pewien, czy musi to być numer.
Większość osób wie, że PESEL zaczyna się od daty urodzenia. Po niej następuje unikalna liczba porządkowa, identyfikator płci i cyfra kontrolna, obliczana za pomocą algorytmu Luhna. Pomińmy fakt, że nie ma on sensu w PESEL-u, gdyż nie wykrywa zamiany dnia i miesiąca urodzenia.
Przy wypełnianiu formularzy łatwo sprawdzić czy PESEL jest poprawny. Programista może łatwo porównać datę z początkiem numeru i płeć z jego dziesiątą cyfrą (parzyste dla kobiet, nieparzyste dla mężczyzn).
Niestety, to co napisałem powyżej to stek kłamstw.
Błędy w numerze PESEL
W rzeczywistości poprawności PESEL-u nie da się sprawdzić. Są osoby o błędnie wyliczonych cyfrach odpowiadających dacie urodzenia (rok 1900 i 2000), chociaż poprawia się ten błąd. Co jednak zrobić z gościem, któremu zmieniła się data urodzenia? Czy normalny programista wpadłby na takie szaleństwo? Programista nie, ale politycy – tak. Takie akcje zdarzają się przy każdej zmianie w systemie emerytalnym itp. To samo z płcią - ona też może się zmienić. W systemie PESEL trzeba w takiej sytuacji poprawić numer.
A co, jeśli okaże się, że cała pula identyfikatorów przeznaczona na dany dzień (5000 dla każdej płci) została zużyta? Nie musi nawet nagle urodzić się 8 razy więcej dzieci niż zwykle. Wystarczy zmiana w ustawie, po której dużej liczbie osób opłaci się postarzeć o rok i przypomną sobie, że jednak urodzili się pewnej zimowej nocy, 31 grudnia roku pozwalającego na przejście na wcześniejszą emeryturę, a przez zamienicie zgłoszenie urodzin zajęło aż miesiąc. Jeśli unikalnych identyfikatorów nie starczy dla wszystkich (to tylko 5000 na płeć na dzień!), zostanie im przyznany numer z kolejnego dnia.
Z samą unikalnością też jest problem, gdyż zdarzają się duplikaty PESEL-i. Jednoznaczna identyfikacja
to kolejny wymysł myślących zero-jedynkowo informatyków - idealistów. Numery mogą się powtarzać, więc nie nadają się do użycia jako klucze główne w bazach danych. W dodatku można je zmienić. Co jeśli zajdzie potrzeba wyszukania osoby, która miała dany pesel w lipcu 2003 roku, nawet jeśli teraz ma inny (np. do przyporządkowania umów do pracowników).
Nawet cyfra kontrolna może być błędna. Kiedyś obliczało się je ręcznie, a wiadomo, że dodawanie i dzielenie modulo 10 to niezmiernie skomplikowane operacje, podczas których powstało kilka tysięcy błędów.
Jak wyeliminować błędy PESEL-u?
W PESEL-u, zarówno z powodu złych założeń (w ciągu dnia nie urodzi się więcej niż 5000 osób tej samej płci
) i błędów użytkowników (ręczne obliczanie cyfry kontrolnej), nie powinno się ufać żadnej z danych i przepuszczać nawet błędne numery. Walidacja formularzy i baz danych nie ma w tym przypadku sensu. Zamiast zmuszać do tego programistę, lepiej wysłać go na kawę. Nie będzie musiał robić kolejnych obejść kiedy pojawi się pierwszy użytkownik, który według systemu nie powinien istnieć.
Możemy co najwyżej sprawdzić, czy numer PESEL jest faktycznie numerem, tzn. czy składa się z cyfr. Nie słyszałem jeszcze o błędach typu wpisanie litery O zamiast cyfry 0, ale nie zdziwiłbym się, gdyby taki się pojawił, kiedy pani Krysia zahaczy tipsem o zły klawisz. Programista może więc w ciągu 10 sekund napisać wyrażenie regularne wyszukujące znaki inne niż cyfry i z czystym sumieniem zająć się piciem kawy.
Reklama Inwestowanie na giełdzie? Przekonaj się jak inwestować z zyskiem!
Wniosek jest prosty: zamiast pracować nad wykrywaniem błędów użytkownika, lepiej wysłać na kawę zarówno jego jak i programistę. Jeśli nie będzie próbował poprawiać błędów, to przynajmniej nie zepsuje całego systemu.
Jeśli więc szukasz perspektywicznego kierunku studiów - wybierz branże kawową. Kiedy w przyszłości wyeliminujemy z systemu tego wrednego użytkownika i ograniczymy pracę programisty, to spożycie kawy wzrośnie. Tak jak zarobki w tej branży.
Komentarze są własnością użytkowników. Zastrzegam sobie prawo do ich usuwania, jeśli uznam je za nieodpowiednie. Więcej w polityce prywatności.
Zapomniałeś tytułu, jaki z ciebie SEOwiec? :(
Dzięki, już jest.
Bullshit.
We wszystkich opisanych przez Ciebie przypadkach (zmiana płci, daty urodzenia, etc.) następuje nadanie nowego numeru PESEL, który również jest poprawny (zgodny ze swoją cyfrą kontrolną). Osoby, których PESEL się „nie waliduje” nie istnieją. Stąd sprawdzanie poprawności tego numeru w pogramach jest jak najbardziej zasadne i pożądane.
Oczywiście, że istnieją. Najczęstszy błąd to zła cyfra kontrolna, ale nie tylko.
Well, sucks to be them. Powinni zgłosić się po poprawny, tak samo jak masz błąd w dowodzie osobistym.
To, że powinni się zgłosić do poprawy nie jest równoznaczne z tym, że to co napisałem to kłamstwo, nie sądzisz?
sharnik: A dopuszczasz do siebie może myśl, że być może, gdzieś są obywatele, którzy nie interesują się algorytmem PESELa --> nie sprawdzają, czy ich PESEL jest poprawny --> nie wychwycą błędu --> nie zgłoszą się po poprawny?
A jak im jakiś walidator nie przepuści PESELa albo okaże się, że mają zdublowany z inną osobą to będzie za późno, żeby na gwałt lecieć do Urzędu po poprawny?
Może nie kłamstwo, tylko Twój błąd. Posiadanie niepoprawnego numeru PESEL jest błędnym stanem przejściowym i nie powinno się go używać. Tym bardziej, nie powinno się brać takiej ewentualności pod uwagę przy tworzeniu systemów informatycznych.
Polinik: Wyimaginuj sobie, że przy pierwszej próbie podania błędnego numeru PESEL powinni się zorientować. Nikt im nie każe tego ręcznie sprawdzać. A dublowanie numeru tu nie ma nic do rzeczy.
Swoją drogą, nie wiem czy ktokolwiek z Was pisał system z walidacją numerów PESEL, bo ja akurat miałem taką przyjemność. Jakoś nie zdarzyło się nigdy, żeby trzeba było pomijać walidację. A userów, którzy wpisywali błędne (nieistniejące) numery PESEL było całkiem dużo.
Chodzi mi o twoje "bullshit" - może wstrzymaj się z takimi ocenami. Ale mniejsza o to.
Też kiedyś miałem takie podejście, ale właśnie po to napisałem ten tekst, żeby ktoś wziął pod uwagę, że rzeczywistość nie jest taka idealna jak opisuje ją dokumentacja na stronie MSWiA. Co z tego, że zaprojektujesz sobie idealną bazę, skoro pojawi się facet z numerkiem niepasującym do wzorca, którego albo nie będziesz w stanie obsłużyć albo rozwali ci bazę?
Moje „bullshit” było całkowicie uzasadnione. Możesz poczuć się urażony, ale taka jest moja opinia o treści wpisu.
Jak pojawi się taki facet, to „rozwalenie bazy” jest najmniejszym problemem. Numeru PESEL nie pobiera się dla własnej przyjemności, ale ponieważ jest wymagany urzędowo. Jeżeli zaakceptowałeś błędny, to Ty będziesz musiał to wszystko odkręcać potem (ręcznie!), jeśli spróbujesz np. wysłać PIT z błędnym numerem. A ponieważ 99,9% takich przypadków (zakładając, że rzeczywiście istnieją ludzie próbujący posługiwać się błędnymi numerami) można odsiać prostą walidacją, to jak najbardziej należy to uczynić.
Morał z wpisu i komentarzy: jeśli użytkownik wpisał błędny numer PESEL i przypomina on poprawny (data na początku, 1/0 na końcu) to wyświetl użytkownikowi nie tyle błąd, a informację. „Twój numer PESEL jest niepoprawny. Jeśli to naprawdę Twój numer, musisz zgłosić się po nowy do urzędu miasta.” czy coś w ten deseń.
Ej, a ja mam dwa pesele ;<
Malotka, poważnie? Tzn miałaś przez pewien czas jeden i zmieniłaś, tak? Możesz coś więcej napisać?
Poważnie mam (lub może teraz już miałam - nie wiem, bo podaję tylko nowy numer, żeby nikogo w błąd nie wprowadzić).
"Błąd" wyniknął z faktu zmiany nazwiska. Miałam PESEL nr 1, zmieniono mi nazwisko, i dano PESEL nr 2, nie wiem dlaczego i po co, skoro niby powinien mnie w jakiś sposób "identyfikować".
Ale nie tak dawno, bo jakiś rok temu (zmiana nazwiska była około 10 lat temu) byłam u dentysty i z rozpędu podałam PESEL nr 1 - okazało się, że działa i nawet moje dane są poprawne (czyli nowe nazwisko, w miejsce starego)! Skoro zmienili te dane, to nie wiem czemu przyznali mi drugi numer... ^^
"Oczywiście, że istnieją. Najczęstszy błąd to zła cyfra kontrolna, ale nie tylko" - znasz takie przypadki?
"skoro pojawi się facet z numerkiem niepasującym do wzorca, którego albo nie będziesz w stanie obsłużyć albo rozwali ci bazę?"
jeżeli pojawia się facet mający błędny numer PESEL to go nie obsługujesz. To chyba nie trudne?
Znam osobiście dwa przypadki osób z niepasującą cyfrą odpowiadającą za płeć i jedną z niezgadzającą się datą urodzenia. Słyszałem o wszystkich opisanych przypadkach. Sumy kontrolne to powszechny problem. Teraz jeszcze Malotka wyskakuje z podwójnym numerem, co jest już zupełnym kosmosem i stawiam piwo, że mało kto projektując bazę danych uwzględnia taką opcję.
Marcin: Jestem pewien, że mało kto projektując bazę uwzględnia opcję podwójnego numeru. Z prozaicznego powodu, że nie ma ona żadnego znaczenia.
Jestem pewien, że każdy kto projektuje bazę danych osobowych błędny PESEL uważa za błąd osoby wprowadzającej dane i nie powinien dopuszczać takich danych do bazy, bo inaczej powinien też dopuścić błędne nr. dowodu, błędne podanie płci, błędną datę urodzenia (32 kwietnia 2010, a co) etc. Błędne nr. PESEL powinno traktować się jako fałszywe dane.
Co to za odkrycie, że pesele są zabugowane bardziej niż Windows ME? Każdy średnio rozgarnięty student wie, że nie nadają się do nikogo.
Panie Sharnik, ja bym się nie przyznawał, że projektowałem serwis z obslugą peseli z podejściem - cutuję - "Tym bardziej, nie powinno się brać takiej ewentualności pod uwagę przy tworzeniu systemów informatycznych". Wyedytuj ten post zanim Twój pracodawca go zobaczy i dowie się o utraconych klientach (użytkownikach, pracownuikach), których nie chcesz obsługiwać w systemie, bo mają zły pesel.
Projektowałem system dla służby zdrowia, gdzie pesel jest powszechnym identyfikatorem i mogę Cię zapewnić, że zmienione pesele trzeba przechowywać, żeby na przykład dopasować historię pacjenta przed i po zmianie.
Czyli co - dodatkowy id uzytkownika i kilka wierszy na uzytkownika z data_przyznania danego pesela?
Lekkie przegiecie.
Ale w koncu rozumiem, czymu oprócz pesela na formularzach podatkowych sa jeszcze inne rubryki z danymi osobowymi.
Nie, nie, nie. Żadne dodatkowe kilka iwerszy. Tak się nie projektuje baz. Skąd wiesz czy pacjent zmieni sobie pesel raz czy pięć? A co jak będzie zmieniał co miesiąc? Dodasz 1000 dodatkowych pól?
Zakladasz nową tabelę z kolumnami IDUZYTKOWNIKA, PESEL, DATANADANIA, DATA_USUNIECIA i przechowujesz w niej dane o wszystkich pacjentach. Pesel w żadnym wypadku nie nadaje się do stosowania jako klucz główny, choćby dlatego, że nie każdy go ma (obcokrajowcy).
Projektowanie systemu to nie zabawa, musisz naprawdę zanć się na temacie, żeby nie zrobić własnie takich błędów jak pesel stosowany jkao ID. A podejście "tych Państawa nie obsługujemy" podane przez panów p[owyżej sprawdzi się chyba tylko w projektach studenckich.
Artykuł jest o tyle donry, że może faktycznie ktoś się wstrzyma zanim postanowi wykluczyć z systemu parę tysięcu osób, które "powinny sobie poprawić pesel". Poza tym to inc nowego nie wnosi, bo każdy kto trochę siedział w temacie traktuje pesel tak samo jak nazwę ulicy.
Anonim: Wszędzie gdzie nie identyfikujesz klienta po numerze PESEL przechowywanie starych numerów jest zwykle niepotrzebne. Służba zdrowia jest wyjątkiem, a nie regułą.
A koszty obsługi klienta ze złym PESELem mogą być wyższe od zysków.
A mój jest poprawny, ale nie przechodzi walidacji na niektórych "kalkulatorkach" w Sieci. Błędne daty urodzenia w dokumentach też się zdarzają (ale raczej są prostowane). Zdaje mi się, że nawet widziałem taką.
I nie wszędzie można powiedzieć komuś "You don't exist! Go away!".
Zostaje jeszcze wpisanie wartości niezgodnej ze stanem faktycznym, ale przechodzącej walidację (np. raz musiałem coś takiego zrobić przy dacie ślubu). Tylko że z tego mogą być jeszcze większe problemy.
I jeszcze kilka razy trzeba było usunąć niepełne dane, żeby jakoś rzecz do przodu popchnąć.
Co do zmiany daty urodzenia czy płci, to jasne że się zmienia przy okazji numer PESEL, ale nie wydaje mi się, żeby to się działo jednocześnie. W międzyczasie mamy "błędny stan przejściowy".
W moim mniemaniu, artykuł porusza problem samego numeru PESEL i jego ułomnej budowy. Wycieczka pod informatykę jest troszkę na wyrost. W szczególności, że PESEL praktycznie wartości informacyjnej nie ma żadnej.
Drzecie koty o głupoty ;-) Każdy system realizuje inne cele wyższe. Jedni będą w stanie przełknąć błędną formę, a inni nie dopuszczą do takiego scenariusza. Właściwie nie jest to nawet problem programistyczny tylko stricte projektowy. A takie problemy rozwiązuje projektant przy kawce z klientem docelowym tego systemu!
ps.Jak przeczytałem o tym systemie służby zdrowia... to zastanawiam się czy w tym kraju kiedykolwiek będzie dobrze. Ja uważam, że nie. Jeżeli trzeba projektować typowe buble, przewidując na samym wstępie że dane SZTUCZNE(pesel jest sztucznym wymysłem) będą zmieniane przez obywateli w deklaracjach - to jest to przykład typowych błędów proceduralnych. Tutaj nic nie ma do tego informatyka. Tym zajmuje się zarządzanie i nauki odpowiedzialne za to w jaki sposób organizacje funkcjonują. System polskiej służby zdrowia jest prawdopodobnie najgorszym, jakikolwiek został wdrożony przez człowieka. Tylko chcąc informatyzować go, nikt nie zwraca na to uwagi. Ważna jest kaska. Można to zinformatyzować za 1000 mld zł. tylko nikt nie odpowiada sobie na podstawowe pytanie PO CHOLERE? To należy zrobić od podstaw, a nie pisać workaround-y z kosmosu.
pss. "A koszty obsługi klienta ze złym PESELem mogą być wyższe od zysków". Ja to widzę tak. Koszty biurokracji w Polsce są wyższe niż potencjalne zyski jakiegokolwiek przedsiębiorstwa. Tylko, że z takim podejściem to my daleko nie zajdziemy. Tu należy wykazywać błędy i je poprawiać, bo takie twory jak PESEL są typowym przykładem wtórnej głupoty. Ja zaproponuje UPESEL, a następny kowalski SUPESEL i zobaczymy czy naród wytrzyma? A jak to nie pomoże to i dodamy dwa dodatkowe numerki!
Ale problem prawidłowych błędnych danych występuje wszędzie, a PESEL jest tylko fajnym przykładem. Możesz na przykład przejechać się na czymś innym. Program może się upierać, że samochód ma mieć cztery koła, człowiek nie może ważyć więcej niż 250 kilogramów, że nie przyjdzie osoba urodzona przed rokiem 1900 albo po roku 2012, że nikt nie będzie mieć imienia dłuższego 25 znaków i takie rzeczy. I chodzi o to, żeby takie głupoty warunkowo przepuszczać.
I ktoś chyba zapomniał, że mogą istnieć koszty nie obsłużenia klienta, które mogą być jeszcze wyższe.
A tak nawiasem mówiąc, to już samo tworzenie numerów ręcznie jest już fatalną pomyłką, bo nie od tego jest pierwsze E w PESEL, żeby na kartce numery przetwarzać.
Nie wiem, czy tylko branża medyczna stanowi taki wyjątek (konieczność obsłużenia wadliwych PESELi bądź ich braku), ale na 100% w niej akurat takie sytuacje są na porządku dziennym. Nie możesz nie przyjąć człowieka do szpitala, bo nie znasz jego PESELa, lub zapisany na jakiejś karteczce jest błędny. Historyzacja takich danych jest obowiązkowa, bo stanowią one część danych medycznych, które trzeba przechowywać tak, aby możliwe było odtworzenie tego, co się działo z człowiekiem, przez X lat. Jest więc sytuacja, kiedy podany PESEL jest błędny, lub nie ma go wcale (brak dokumentów + obcokrajowcy). Dodatkowo dochodzi sytuacja, kiedy normalne jest, że dwie osoby identyfikowane są takim samym PESELem, np. noworodki i badaniami im robione) są identyfikowane po PESELu matki, czasem dodatkowo jej imieniu i płci dziecka (do czasu rejestracji i nadania numeru i imienia trochę czasu minie). I co? I nico, takie systemy istnieją i mają się dobrze (bo mieć się muszą), nie są też na pewno jedynymi, w których takie kwiatki znaleźć można, co nie znaczy, że weryfikację należy sobie całkowicie darować, bo przy wpisywaniu 11 cyfr można się pomylić nawet i 10 razy, co niestety się zdarza.
@BTM: nie chodzi o błędne numery w sensie "fałszywe", tylko niezgadzające się z innymi danymi (np. z datą urodzenia) albo z samym sobą (cyfra kontrolna).
@Anonim, severson, weronika: ja też uważam, że nie można po prostu powiedzieć "tych państwa nie obsługujemy". Taka sytuacja kojarzy mi się z obsługą IE6: są sytuacje, w których po prostu trzeba korzystać z tej archaicznej przeglądarki i z danych nieprzechodzących walidacji i trzeba się do tego dostosować.
@Piotr Mąsior: oczywiście, że problem jest natury projektowej, bo zakodowanie walidatora to pół godziny, o ile znalezienie gotowego kodu nie zajmie jeszcze mniej.
PESEL podałem jako przykład problemu, w którym wszystko może pójść inaczej niż chciałby programista (projektant aplikacji), a błędy mogą być tak kosmiczne, że nikt o zdrowych zmysłach by na to nie wpadł (patrz historie Malotki i Weroniki z komentarzy).
Poza tym służba zdrowia jest o tyle ciekawym przykładem, że tak jak piszesz taniej byłoby zrobić wszystko od początku (PESEL2), ale jak widać po postach Anonima - nikt się tym nie przejmuje i zamawia work-aroundy.
@riddle: dobrze mówisz. ja bym dodał jeszcze "...albo będziesz tu siedzieć i poprawiać bazę";)
To właśnie gdzieś rzekłem, że jeśli już, to należy robić "miękką" walidację. "Robisz coś głupiego, więc popraw się lub upewnij, że wiesz co robisz".
Za kilka lat pewnie wynikną problemy z biometrią, że nie ma jak komuś palca albo tęczówki zeskanować, bo narząd taki u danej osoby akurat nie występuje. I co? Wywiesisz tabliczkę na banku, szpitalu czy lotnisku, że "osoby z niewystarczającą liczbą oczu lub palców nie będą obsługiwane"?
Ale ale, sytuacja z jednym PESELem i większą ilością osób (dzieci może być więcej niż 1 :) ), czy brakiem PESELa wcale nie jest błędna, bo to nie jest przypadek jeden na 10000, tylko sytuacja, która się zdarza co rusz i co chwilę.
zastanawia mnie dlaczego w stanach wystarczy SSN i wszystko o każdym wiesz? Odpowiecie mi na tą zagadkę? W polsce 7 numerków 3 pełne adresy (zameldowanie, zamieszkanie i ewentualne tymczasowe przebywanie) i tak żadna instytucja nie ma pojęcia czy to Iksiński czy Kowalski...
ja słyszałem, że raka się wycina a nie karmi....
.... ale może "jeden jedyny słuszny numer" źle się w naszej mentalności kojarzy i musimy się każdemu przedstawiać całym życiorysem... nie wiem... nie pojmuje takich spraw
Mam inny PESEL na dowodzie (i innych normalnych dokumentach), a inny wg NFZ i w ich papierach. Jak do tej pory wszędzie przechodziło bez przeszkód. Widzę możliwe trzy powody: 1) dlatego, że wszystko było obsługiwane ręcznie przez pielęgniarki; 2) data urodzenia, płeć i suma kontrolna się zgadza; 3) dlatego, że bardzo poważnych (czytaj: drogich) rzeczy nie robiono.
Błąd popełniono gdzieś niedługo po narodzinach, więc nie można mieć pewności, czy czasem ten numer w dowodzie nie jest efektem błędu. Sharnik, co powiesz na to? :)
Niestety jesteś w małym błędzie. Już na początku lat dziewiędziesiątych zasady nr PESEL się zmieniły. Pierwsze 6 cyfr to nie data urodzenia a zakodowana data urodzenia. Chodzi o poprawne zakodowanie osób urodzonych przed 1900 oraz po 2000. Więc to że nie równa się to dacie urodzenia to nic nie znaczy. Dodatkowo identyfikator płci już nie istnieje, więc dziennie może się urodzić 10000 dzieci.A jeżeli się urodzą to mogą dostać nr np: z następnego dnia, gdyż nigdzie niejest powiedziane że ma to być data. Suma jest liczona identycznie (tzn wspomniany algorytm)
Nie może być identyfikatora PESEL ze złą cyfrą kontrolną, tego nawet sam system MSWiA nie przeżyje, Jeżeli jest to osoby te napewno dostały informacje o korekcie.
Dodatkowo jest oficialna procedura zmiana Imienia, Nazwiska i nr PESEL więc nie jest to takie stałe jak być powinno.
Kolejny błąd jeżeli chodzi o rok 1900 i 2000. By dzieciaki urodzone w 2000 roku i później nie dublowały się ze 100 latkami do części oznaczającej miesiąc urodzenia w nr PESEL dodwana jest "20stka" i tak dla kogoś urodzonego w styczniu będzie to zamiast 01 - 21 a dla osób urodzonych w październiku, listopadzie bądź grudniu będzie to odpowiedznio 30,31,32.
I gdzie tu błąd?
Tak samo dla osób urodzonych przed 1900 liczby te będą odpowiednio 81-92, zdaje się że tak było od początku, bo nie wydaje mi się, żeby ktoś nie przewidział istnienia stulatków ;).
Z tego wynika kolejne ograniczenie, to znaczy limit 500 lat (z czego zostało nam niecałe 400). Chyba że będziemy brać pod uwagę tylko osoby żyjące lub zmarłe stosunkowo niedawno, to wtedy nie ma się co przejmować. ;)
Widzę, że odgrzaliście sobie temat numerów PESEL:). Niedawno natknąłem się na wpis na jakimś forum, gdzie ludzie liczyli jak bardzo nadmiarowy jest ten system zapisu. Wyszło, że wykorzystuje się tylko miliardowe części tego, co tak długi numer może pomieścić, np. ze względu na użycie samych cyfr w części identyfikującej daną osobę albo marnowanie miejsca w pozycjach odpowiedzialnych za dzień i miesiąc. Ale to tylko tak na marginesie.
"Pomińmy fakt, że nie ma on sensu w PESEL-u, gdyż nie wykrywa zamiany dnia i miesiąca urodzenia."
Kolejny błąd - algorytm nie wykrywa zamiany dni i roku urodzenia
A mnie przyznali 2 różne numery PESEL przy urodzeniu i dowiedziałam się o tym dopiero w liceum:) Ile było kłopotów z odkręcaniem tego! Przysłowiowe panie Krysie nie są zbyt dobre w usuwaniu dodatkowej tożsamości, w dodatku utworzonej w dobie przedkomputerowej...