Es ist ein Modul, das meine Nummer mit pip installierbarem Python überprüft. Wir führen eine Gegenprüfung mit der Ruby-Version und 10.000 Fällen durch. Der Artikel Berechnen meiner Nummernprüfziffer war wunderbar, sodass ich eine Python-Version erstellen konnte, indem ich darauf verwies.
install
install
pip install mynumber
https://pypi.python.org/pypi/mynumber
sample code
install
# -*- coding: utf-8 -*-
from __future__ import absolute_import, unicode_literals
from mynumber import MyNumber
#Meine Nummernüberprüfung
my_number = 123456789018
print MyNumber.validate(my_number)
#Mehr meine Nummernüberprüfung
for my_number in MyNumber.gets(1000):
assert MyNumber.validate(my_number)
#Immer mehr meine Nummernüberprüfung durch Iterator:Es gibt Doppelarbeit
for my_number in MyNumber():
assert MyNumber.validate(my_number)
○ Verordnung Nr. 85 des Ministeriums für innere Angelegenheiten und Kommunikation
$ Pn $: Die Nummer der $ n $ -Ziffer, wenn die niedrigstwertige Ziffer der elfstelligen Nummer außer der Inspektionsnummer, aus der die persönliche Nummer besteht, die $ 1 $ -Ziffer ist. $ Qn $: $ n + 1 $ wenn $ 1 ≤ n ≤ 6 $, $ n-5 $ wenn $ 7 ≤ n ≤ 11 $
Artikel in Original und Check Digit für meine Nummer berechnen Ich zitierte die Formel von.
Ich habe den Code im Artikel Berechnen Sie meine Zahlenprüfziffer überprüft.
ruby_mynumber_validate.rb
#!/usr/bin/env ruby
def validate_my_number(mynumber)
#Ganzzahlige Zeichenfolge
digits = mynumber.to_s.chars.map(&:to_i)
#Nur 12 Stellen erlaubt
return false unless digits.length == 12
#Separate Prüfziffern
check_digit = digits.pop
#Überprüfen Sie die verbleibenden Zahlen von der kleinsten
digits.reverse!
#Berechnen Sie den Rest, indem Sie die Summe der Zahlen durch 11 teilen
remainder = (1..11).inject(0) {|sum, i|
p = digits[i-1]
q = (i <= 6) ? i+1 : i-5
sum + p*q
} % 11
case remainder
when 0,1
check_digit === 0
else
check_digit === (11 - remainder)
end
end
my_numbers = [
xxxxx,
xxxxx,
xxxxx,
xxxxx,
]
my_numbers.each do |num|
r = validate_my_number(num)
if r == false then
p num
end
end
Recommended Posts