Diskussion:Luhn-algoritmen

message: Jag har försökt att göra algoritmerna så bra som möjligt och har ändrat lite fram och tillbaka i dem, och det finns säkert utrymme för att förbättra dem. De andra algoritmer jag sett, tex på engelska wikipedia, är inte speciellt snygga tyvärr, annars hade man kunnat kopiera dem.
89.253.76.62 6 januari 2008 kl. 13.40 (CET)
Jag vet inte om alla implementationer behövs, men de som jag sett på engelska wikipedia som länkar är inte vackra.
89.253.76.62 6 januari 2008 kl. 13.43 (CET)
Jag testade javascriptversionen på min Dell/Windows och det funkade inte, om jag inte bytte ut variabelnamnet "korrekt" mot "x" som i 
     x = (lst + 10 - summa % 10) % 10;
     output("'" + c + "'" + " har en < b>FELAKTIG< /b> kontrollsiffra. Korrekt siffra är: " + x);
(med extra mellanslag vid b-kommandona som i artikeln) —osignerat inlägg av 150.227.15.253 (diskussion • bidrag) 
replies: text: Jag testade koden i Firefox 2, Opera 9 och Safari 3, där det funkade utan problem. Dock gillade inte Internet Explorer 7 koden. Inte helt oväntat att Microsofts webbläsare inte gör vad den borde göra. Jag korrigerar koden så att variabelnamnet skiljer sig från html-id:t. --Strangnet 13 maj 2008 kl. 16.00 (CEST)
Det står att man ska börja med den sista siffran, trots det så börjar C# koden med den första, kan det vara korrekt?
Den engelska varianten gör sas rätt. http://en.wikipedia.org/wiki/Luhn_algorithm
  public static int CalculateCheckDigit(string value)
  {
      int ConSum = 0;
      bool doubleDigit = true;  // check digit is absent before generation
      for (int i = value.Length - 1; i >= 0; i--)
      {
          int digit = 0;
          Int32.TryParse(value[i].ToString(), out digit);
          int ConAdd = digit * (doubleDigit? 2: 1);
          doubleDigit = !doubleDigit;
          ConSum += (ConAdd > 9 ? ConAdd -= 9 : ConAdd);
      }
      return ((ConSum % 10) == 0 ? 0 : (10 - (ConSum % 10)));
  }
Det står i beskrivningen att vid kontroll av nummer ska man börja med att multiplicera med ett (121212) men i det tillhörande exemplet multipliceras med 212121 liksom vid beräkningen av kontrollnumret. Vilket är rätt?

text: Vid beräkning av kontrollsiffran börjar man från höger med 2. Så om det är ett jämnt antal siffror multipliceras siffran längst till vänster med 1, annars med 2. Vid kontroll början man från höger (dvs med kontrollsiffran) och multiplicerar den med 1. Testa på ditt eget personnummer ser du att det stämmer.Mange01 22 mars 2011 kl. 09.40 (CET)

message: I artikeln står det:
replies: text: "Algoritmen kan alltid upptäcka enkelfel, det vill säga en felskriven siffra eller ett byte av två intilliggande siffror"
men jag skulle vilja påstå att det inte är sant om bytet sker mellan en nia och en nolla, tex har alla 3 nedan giltliga kontrollsiffror
* 1111111009
* 1111111090
* 1111111900
--Puggan 20 juli 2011 kl. 15.58 (CEST)
replies: text: :Det är en riktig iakttagelse. Artikeln är kompletterad med en beskrivning av undantaget vad gäller möjlighet att upptäcka byte av två siffror. /Larske 20 juli 2011 kl. 17.00 (CEST)
replies: text: :: Mange01 20 juli 2011 kl. 19.26 (CEST)
thread_title:  Fel i artikeln? ang enkelfel 

message: Artikeln innehöll fram till versionen från maj 2012 kodexempel på 20 olika programspråk, men det raderades med hänvisning till att "wikipedia är inte en lärobok eller exempelbok i programmering". Nu har ett nytt kodexempel dykit upp. Bra - hoppas det får vara kvar! Även enwp-artikel har bara ett kodexempel idag, även det i Python. Dock är det exemplet mer begripligt, men betydligt längre eftersom det inte utnyttjar Pythons möjlighet att skriva kompakt kod genom lambda-funktioner. 
replies: text: en:Wikipedia:WikiProject Computer science/Manual of style#Code_samples säger att normalt läggs bara ett programspråk in i artiklar om en viss algoritm.Mange01 (diskussion) 10 juli 2015 kl. 00.36 (CEST)
thread_title:  Exempelkod på ett språk ok