C'est un module qui vérifie mon numéro avec Python installable pip. Nous faisons une vérification croisée avec la version ruby et 10 000 cas. L'article Calculer mon chiffre de contrôle de numéro était merveilleux, j'ai donc pu créer une version Python en y faisant référence.
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
#Vérification de mon numéro
my_number = 123456789018
print MyNumber.validate(my_number)
#Plus de vérification de mon numéro
for my_number in MyNumber.gets(1000):
assert MyNumber.validate(my_number)
#De plus en plus ma vérification de numéro par itérateur:Il y a duplication
for my_number in MyNumber():
assert MyNumber.validate(my_number)
○ Ordonnance n ° 85 du Ministère de l'intérieur et des communications
$ Pn $: Le numéro du chiffre $ n $ lorsque le chiffre le moins significatif du nombre à onze chiffres autre que le numéro d'inspection qui constitue le numéro personnel est le chiffre $ 1 $. $ Qn $: $ n + 1 $ lorsque 1 $ ≤ n ≤ 6 $, $ n-5 $ lorsque 7 $ ≤ n ≤ 11 $
Articles dans Original et Calculate Check Digit for My Number J'ai cité la formule de.
J'ai vérifié avec le code dans l'article Calculer mon chiffre de contrôle de numéro.
ruby_mynumber_validate.rb
#!/usr/bin/env ruby
def validate_my_number(mynumber)
#Stringation entière
digits = mynumber.to_s.chars.map(&:to_i)
#Seulement 12 chiffres autorisés
return false unless digits.length == 12
#Chiffres de contrôle séparés
check_digit = digits.pop
#Vérifiez les nombres restants du plus petit
digits.reverse!
#Calculez le reste en divisant la somme des nombres par 11
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