2025-11-19, 18:09
  #1
Medlem
Hej!
Har av olika anledningar ett projekt där jag skriver över handskrivna personnummer till en excelfil i datorn.

Då handstilen tyvärr ofta är kass, använder jag nu när jag är klar https://sv.wikipedia.org/wiki/Luhn-algoritmen för att bekräfta att ett personnummer är korrekt. Om man inte är insatt i hur luhn fungerar kan man enkelt säga att man kör en formel på siffrorna i personnumret, och formeln ger det sista siffran i personnumret. Man kan använda detta för att kontrollera att ett personnummer är korrekt.

Nu när jag gjort det visar det att 14.5% av personnumren är inkorrekta. Det i sig är inte ett jättestort problem, men mitt stora problem är att det då sannolikt finns personnummer som enligt luhn klassas som korrekta, men som egentligen är felaktiga (falsk-positiva). Jag behöver räkna ut hur många (%) de är?

Jag antar att det för att det ska bli en felaktigt korrekt sista siffra behöver vara åt minstone två siffror som blir fel i personnumret, och att de siffrorna blir fel på ett sätt så att sista siffran stämmer?

Länge sedan man gick i gymnasiet så tänkte be om lite hjälp med att räkna ut detta, tycker det blev mer och mer invecklat destu mer man vred och vända på det... Förstår att detta kanske är en lite luddig beskrivning, så ger gärna mer info om det behövs! Tack för all hjälp!
__________________
Senast redigerad av TheSloth 2025-11-19 kl. 18:14.
Citera
2025-11-19, 18:19
  #2
Medlem
Länka ordentligt https://sv.wikipedia.org/wiki/Luhn-algoritmen

Citat:
Jag antar att det för att det ska bli en felaktigt korrekt sista siffra behöver vara åt minstone två siffror som blir fel i personnumret, och att de siffrorna blir fel på ett sätt så att sista siffran stämmer?
Korrekt

Men jag ser inte direkt hur du ska kunna räkna ut hur många som är falsk positiva. Det enda jag kan komma på förutom att köra Luhn är att kontrollera om datumet existerar. Men vill du gå längre än så lär du göra en slagning mot folkbokföringen.
Citera
2025-11-19, 18:39
  #3
Medlem
Tack, fixat länken nu!

Inte assugen på att köra mot folkbokföringen, absolut ett alternativ men orkar inte krånglet om det är "acceptabel" nivå på felen.

Funderar på att detta kan vara början på en lösning: Givet 14.5% fel och 10 siffror i ett personnummer

1. Räkna ut risk att varje enskilld siffra är fel
2. Räkna ut risken att två siffror i personnumret är fel
3. Göra samma sak för risken att tre siffror är fel osv
4. Om en siffra är fel -> Luhn fångar det alltid
5. Om 2 siffor är fel -> Luhn fångar det 9/10 gånger
osv
Eller något sådant. Tacksam för all hjälp! Kanske är helt ute och cyklar!
Citera
2025-11-19, 18:50
  #4
Medlem
Citat:
Ursprungligen postat av TheSloth
Tack, fixat länken nu!

Inte assugen på att köra mot folkbokföringen, absolut ett alternativ men orkar inte krånglet om det är "acceptabel" nivå på felen.

Funderar på att detta kan vara början på en lösning: Givet 14.5% fel och 10 siffror i ett personnummer

1. Räkna ut risk att varje enskilld siffra är fel
2. Räkna ut risken att två siffror i personnumret är fel
3. Göra samma sak för risken att tre siffror är fel osv
4. Om en siffra är fel -> Luhn fångar det alltid
5. Om 2 siffor är fel -> Luhn fångar det 9/10 gånger
osv
Eller något sådant. Tacksam för all hjälp! Kanske är helt ute och cyklar!
Jo, det verkar vara en rätt rimlig approach. Var dock beredd på att det kommer bygga på en del antaganden.

Men får jag fråga vad det är du skulle få ut av av att räkna ut det?
Citera
2025-11-19, 19:24
  #5
Medlem
mikaelss avatar
Vad är det du letar efter, felaktig kontrollsiffra eller felaktigt personnummer?
De första sex (eller åtta) är ju födelsedatum, det är ju enkelt att verifiera, och du behöver inte blanda in Mod10.
År 1900 till idag, månad 1-12, dag 1-31 beroende på månad.
Så du behöver ju knappast kolla den enskilda siffran i datum eller månad.
Men en korrekt checksiffra kan ju även ett ogiltigt födelsedatum ha.

Så jag förstår inte riktigt ditt problem. Vad tror du är fel, och varför?
__________________
Senast redigerad av mikaels 2025-11-19 kl. 19:27.
Citera
2025-11-19, 20:01
  #6
Medlem
Korv-Bajss avatar
Citat:
Ursprungligen postat av TheSloth
Hej!
Har av olika anledningar ett projekt där jag skriver över handskrivna personnummer till en excelfil i datorn.

Då handstilen tyvärr ofta är kass, använder jag nu när jag är klar https://sv.wikipedia.org/wiki/Luhn-algoritmen för att bekräfta att ett personnummer är korrekt. Om man inte är insatt i hur luhn fungerar kan man enkelt säga att man kör en formel på siffrorna i personnumret, och formeln ger det sista siffran i personnumret. Man kan använda detta för att kontrollera att ett personnummer är korrekt.

Nu när jag gjort det visar det att 14.5% av personnumren är inkorrekta. Det i sig är inte ett jättestort problem, men mitt stora problem är att det då sannolikt finns personnummer som enligt luhn klassas som korrekta, men som egentligen är felaktiga (falsk-positiva). Jag behöver räkna ut hur många (%) de är?

Jag antar att det för att det ska bli en felaktigt korrekt sista siffra behöver vara åt minstone två siffror som blir fel i personnumret, och att de siffrorna blir fel på ett sätt så att sista siffran stämmer?

Länge sedan man gick i gymnasiet så tänkte be om lite hjälp med att räkna ut detta, tycker det blev mer och mer invecklat destu mer man vred och vända på det... Förstår att detta kanske är en lite luddig beskrivning, så ger gärna mer info om det behövs! Tack för all hjälp!

Om det är sannoLIKheter (och inte sanningar) du försöker få fram så kanske det finns lite ytterligare (dåliga) trix.

Före år 1990 hade varje län en egen nummerserie för dom tre näst sista siffrorna.
Plus att RSV hade några nummer att lattja med.

  • Stockholms län 001-139
  • Uppsala län 140-159
  • Södermanlands län 160-189
  • Östergötlands län 190-237
  • Jönköpings län 240-269
  • Kronobergs län 270-289
  • Kalmar län 290-319
  • Gotlands län 320-329
  • Blekinge län 330-349
  • Kristianstads län 350-389
  • Malmöhus län 390-459
  • Hallands län 460-479
  • Göteborgs- och Bohus län 480-549
  • Älvsborgs län 550-589
  • Skaraborgs län 590-619
  • Värmland län 620-649
  • Örebro län 660-689
  • Västmanlands län 690-709
  • Kopparbergs län 710-739
  • Gävleborgs län 750-779
  • Västernorrlands län 780-819
  • Jämtlands län 820-849
  • Västerbottens län 850-889
  • Norrbottens län 890-929
  • Reserverade för RSV 650-659
  • Reserverade för RSV 740-749
  • Reserverade för RSV 930-999
Se: https://www.scb.se/contentassets/8d9d985ca9c84c6e8d879cc89a8ae479/ov9999_2016a01_br_be96br1601.pdf

Jag tror att man plockade ut numren i stigande nummerordning.
Det borde betyda att numren i början på en nummerserie förekommer oftare än dom i slutet.
Om man kan anta att en person är född i ett visst län före år 1990
kan man se om det stämmer med listan ovan.
Men jag TROR att det hände att länen "lånade" nummer av varandra ifall deras egna nummer tog slut.
(T.ex. 9 månader efter ett lokalt åskoväder.)

Jag tror att jag har hört från en vanligtvis felinformerad källa att
RSV tidigare har använt 930-999 serien till "nysvenskar".
Citera
2025-11-19, 20:31
  #7
Moderator
Neksnors avatar
Kontrollsiffran stämmer bland annat om två siffror med ett udda antal siffror mellan sig byter plats. Jag är säker på, men orkar inte försöka kontrollräkna/bevisa något, att en ändrad siffra alltid ger fel enligt Luhn.
Att räkna ut hur många som antagligen är fel låter väldigt konstigt, det intressanta är väl att hitta de som är fel?
Börja att kolla att datumet är korrekt. Sedan kanske du kan plocka ut alla kvinnor och kolla så att förnamnet är rimligt, följt av samma sak för männen.

Handlar det om gamla personnummer så kan det ha ändrats. Systemet är så idiotiskt att ett personnummer ändras (- blir +) när man fyller 100 år.
Så ett för 10 år sedan antecknat personnummer med födelsedatum 1920-04-30 kan vara identiskt med en nyantecknat personnummer med födelsedatum 2020-04-30.
Citera
2025-11-20, 16:15
  #8
Medlem
Om du har moral att inte bry dig om GDPR så
1. släng in hela den handskrivna listan i ChatGPT eller din preferrerade ai och be den ge dig en excel, du kan även be den markera de personnummer som var extra svårtolkade
2. Jämför AIns lista med din

Det här är inte svaret på din fråga, men eftersom ni är "två" som matat in personnumren så kommer kvaliteten på dina personnummer öka rejält.
Citera
2025-11-20, 22:53
  #9
Medlem
Gjorde vissa efterforskningar och tydligen är det vanligt med att man kastar om siffror eller ser fel på siffror.

Det borde också spela roll hur det är nedskrivet, radavstånd kan ju göra att man är mer eller mindre benägen att se fel på siffror inte enbart i sidled men också upp ned.

Någonstans tror jag att man reagerar på om det inte börjar på 19 eller 2(0,1,2) i de flesta sammanhang

Sedan tror jag att det borde vara litet större chans att se rätt på sista siffran.

Jag gjorde förenklingen att enbart räkna på att 10 siffror kan bli fel och att alla siffror har lika stor chans att ersätta den rätta siffran. Om x är sannolikheten att en siffra blir fel så måste sannolikheten att allt blir rätt vara (1-x)^10 = 1-0.145

Insatt i räknare gav det x =(ungefär) = 0,01546

Två fel av typen som inte upptäcks av luhr: 0.1* x^2* 10*9*(1-x)^8 =ungefär 2 promille

Väldigt mycket förenklingar och antaganden dock.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in