Luhn

Luhn

Mittel

Einführung

Bei der Globalen Verifizierungsbehörde wurde dir gerade ein wichtiger Auftrag anvertraut. Überall in der Stadt, von Online-Einkäufen bis zu sicheren Logins, verlassen sich unzählige Vorgänge auf die Genauigkeit numerischer Identifikatoren wie Kreditkartennummern, Bankkontonummern, Transaktionscodes und Tracking-IDs. Der Luhn-Algorithmus ist eine einfache Prüfsummenformel, mit der sichergestellt wird, dass diese Nummern gültig und fehlerfrei sind.

Ein Stapel Identifikatoren ist gerade auf deinem Schreibtisch gelandet. Alle müssen den Luhn-Test bestehen, um sicherzustellen, dass sie rechtmäßig sind. Fällt einer durch, wird er als ungültig markiert, um Fehler oder Betrug zu verhindern, etwa falsche Transaktionen oder unbefugten Zugriff.

Kannst du dafür sorgen, dass das richtig gemacht wird? Die Integrität vieler Dienste hängt von dir ab.

Anleitung

Bestimme, ob eine Kreditkartennummer nach der Luhn-Formel gültig ist.

Die Zahl wird als String übergeben.

Eine Zahl validieren

Strings der Länge 1 oder weniger sind nicht gültig. Leerzeichen sind in der Eingabe erlaubt, aber sie sollten vor der Prüfung entfernt werden. Alle anderen Zeichen, die keine Ziffern sind, sind unzulässig.

Beispiel 1: gültige Kreditkartennummer

4539 3195 0343 6467

Der erste Schritt des Luhn-Algorithmus besteht darin, jede zweite Ziffer zu verdoppeln, und zwar von rechts beginnend. Wir verdoppeln

4539 3195 0343 6467
↑ ↑  ↑ ↑  ↑ ↑  ↑ ↑  (double these)

Ergibt das Verdoppeln der Zahl einen Wert größer als 9, dann ziehe 9 vom Produkt ab. Die Ergebnisse unseres Verdoppelns:

8569 6195 0383 3437

Dann summiere alle Ziffern:

8+5+6+9+6+1+9+5+0+3+8+3+3+4+3+7 = 80

Wenn die Summe ohne Rest durch 10 teilbar ist, dann ist die Zahl gültig. Diese Zahl ist gültig!

Beispiel 2: ungültige Kreditkartennummer

8273 1232 7352 0569

Verdopple jede zweite Ziffer, von rechts beginnend

7253 2262 5312 0539

Summiere die Ziffern

7+2+5+3+2+2+6+2+5+3+1+2+0+5+3+9 = 57

57 ist nicht ohne Rest durch 10 teilbar, also ist diese Zahl nicht gültig.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab
Scala Exercism

Bereit, mit Luhn zu starten?

Melde dich bei Exercism an, um Scala mit 95 Übungen und echtem menschlichen Mentoring zu lernen und zu meistern, alles kostenlos.

Tauche tiefer in Luhn ein!

Wir erkunden 8 verschiedene Versionen von Luhn, beginnen mit einer sehr aufgeräumten Ruby-Implementierung, schauen uns einige imperative und funktionale Ansätze an und landen schließlich bei einer SQLite-Version, die Erik und Jeremy nur mit einiger Mühe entschlüsseln konnten!