Raqamni tekshiring - Check digit

A raqamni tekshiring shaklidir ortiqcha tekshiruv uchun ishlatilgan xatolarni aniqlash ilovada ishlatiladigan bank hisob raqamlari kabi identifikatsiya raqamlarida, ular hech bo'lmaganda ba'zan qo'lda kiritilishi mumkin. Bu o'xshash ikkilik parite bit kompyuter tomonidan yaratilgan ma'lumotlardagi xatolarni tekshirish uchun ishlatiladi. U bir yoki bir nechtasidan iborat raqamlar ketma-ketlikdagi boshqa raqamlardan (yoki harflardan) algoritm bilan hisoblangan.

Tekshirish raqami bilan bitta xato yozilgan raqam yoki ketma-ket ikkita raqamning ba'zi bir almashtirishlari kabi bir qator belgilar (odatda raqamlar) kiritilishidagi oddiy xatolarni aniqlash mumkin.

Dizayn

Raqamni tekshiring algoritmlar odatda qo'lga olish uchun mo'ljallangan inson transkripsiya xatolari. Murakkablik tartibiga quyidagilar kiradi:[1]

  • bitta raqamli xatolar, masalan, 1 → 2
  • transpozitsiya xatolari, masalan, 12 → 21
  • 11 → 22 kabi egizak xatolar
  • 132 → 231 kabi o'tish transpozitsiyalari xatolari
  • 131 → 232 kabi egizak xatolar
  • fonetik xatolar, masalan 60 → 16 ("oltmish" dan "o'n oltigacha")

Tizimni tanlashda xatolarga yo'l qo'yilish ehtimoli yuqori bo'lishi, amalga oshirilish qiyinlishuvi bilan almashtiriladi; oddiy raqamli tizimlar odamlar tomonidan osonlikcha tushuniladi va amalga oshiriladi, ammo murakkab dasturlar singari ko'p xatolarga yo'l qo'yilmaydi, buning uchun murakkab dasturlarni amalga oshirish talab etiladi.

Kerakli xususiyat shundan iboratki, nollar bilan chap to'ldirish tekshiruv raqamini o'zgartirmasligi kerak. Bu o'zgaruvchan uzunlikdagi raqamlardan foydalanishga va uzunlikni o'zgartirishga imkon beradi, agar asl raqamga bitta tasdiqlangan raqam qo'shilsa, tizim har doim ham yozib ololmaydi bir nechta xatolar, masalan, ikkita almashtirish xatolari (12 → 34), odatda, ikki barobar xatolar 90% vaqtga to'g'ri keladi (har ikkala o'zgarish ham chiqimlarni hisobga olish yo'li bilan o'zgartirishi kerak).

Tekshirish uchun juda oddiy usul barcha raqamlar yig'indisini olishdan iborat bo'ladi (raqamli sum ) modul 10. Bu har qanday bitta raqamli xatoga yo'l qo'yishi mumkin edi, chunki bunday xato har doim yig'indini o'zgartirishi mumkin, ammo transpozitsiya xatolariga yo'l qo'ymaydi (ikkita raqamni almashtirish), chunki qayta buyurtma berish summani o'zgartirmaydi.

Biroz murakkabroq usul bu tortilgan summa 10-modulli raqamlar, har bir raqam uchun har xil vaznga ega.

Buni tasavvur qilish uchun, masalan, to'rt xonali raqam uchun og'irliklar 5, 3, 2, 7 va kodlangan raqam 4871 bo'lsa, u holda 5 × 4 + 3 × 8 + 2 × 7 + 7 × 1 olinadi. = 65, ya'ni 65 modul 10 va tekshiruv raqami 5 ga teng bo'lib, 48715 ni beradi.

Og'irligi 1, 3, 7 yoki 9 bo'lgan, qo'shni sonlarning vazni boshqacha bo'lgan tizimlar keng qo'llaniladi: masalan, 31 31 vazn UPC kodlar, 13 13 vazn EAN raqamlar (GS1 algoritmi) va Amerika Qo'shma Shtatlarining bankida ishlatiladigan 371 371 371 vazn tranzit raqamlarini yo'naltirish. Ushbu tizim barcha bitta raqamli xatolarni va transpozitsiya xatolarining taxminan 90% ni aniqlaydi. 1, 3, 7 va 9, chunki ular ishlatiladi koprime 10 bilan, shuning uchun har qanday raqamni o'zgartirish tasdiq raqamini o'zgartiradi; 2 yoki 5 ga bo'linadigan koeffitsientdan foydalanish ma'lumotni yo'qotishi mumkin (chunki 5 × 0 = 5 × 2 = 5 × 4 = 5 × 6 = 5 × 8 = 0 moduli 10) va shuning uchun ba'zi bir xonali xatolarga yo'l qo'ymaslik kerak. Qo'shni raqamlarda turli xil og'irliklardan foydalanish shuni anglatadiki, aksariyat transpozitsiyalar tasdiqlash raqamini o'zgartiradi; ammo, barcha og'irliklar juft son bilan farq qilgani uchun, bu 5 va (0 va 5, 1 va 6, 2 va 7, 3 va 8, 4 va 9) bilan farq qiladigan ikkita raqamning transpozitsiyasini ushlamaydi, chunki 2 va 10 hosil bo'lish uchun 5 ko'paytiriladi.

Buning o'rniga ISBN-10 kodi 11-moduldan foydalanadi, u asosiy hisoblanadi va barcha raqamlarning pozitsiyalari turli xil og'irliklarga ega, 1, 2, ... 10. Ushbu tizim shu tariqa bitta raqamli almashtirish va transpozitsiya xatolarini (shu jumladan, o'tish transpozitsiyalarini) aniqlaydi, ammo "X" belgisi bilan ko'rsatilgan raqamning qiymati, ehtimol 10 ga teng. (Shu bilan bir qatorda, shunchaki "X" belgisiga olib keladigan seriya raqamlarini ishlatishdan qochish kerak.) Buning o'rniga ISBN-13 EAN raqamlarida ishlatiladigan GS1 algoritmidan foydalanadi.

Keyinchalik murakkab algoritmlarga quyidagilar kiradi Luhn algoritmi (1954), bu bitta raqamli transpozitsiya xatolarining 98 foizini o'z ichiga oladi (u 90 ↔ 09 ni aniqlamaydi) va hali ham murakkab Verhoeff algoritmi (1969), bu bitta raqamli almashtirish va transpozitsiya xatolarini va juda ko'p (ammo barchasi ham) murakkab xatolarni ushlaydi. Shunga o'xshash boshqa narsa mavhum algebra - asoslangan usul Damm algoritmi (2004), bu ham bitta raqamli xatolarni va barcha qo'shni transpozitsiya xatolarini aniqlaydi. Ushbu uchta usul bitta tekshiruv raqamidan foydalanadi va shuning uchun 10% ko'proq murakkab xatolarni topib bo'lmaydi. Ushbu nosozlik darajasini pasaytirish uchun bir nechta tekshiruv raqamlarini ishlatish kerak (masalan, quyida ko'rsatilgan modul 97 tekshiruvi, unda ikkita tasdiqlangan raqam ishlatiladi - algoritm uchun qarang Xalqaro bank hisob raqami ) va / yoki tekshiruv raqamida kengroq belgilar qatoridan foydalanish, masalan, harflar va raqamlar.

Misollar

UPC

A ning oxirgi raqami Umumjahon mahsulot kodi quyidagicha hisoblangan tekshiruv raqami:[2]

  1. O'ng tomondan (birinchi, uchinchi, beshinchi va boshqalar - raqamni hisobga olmaganda) toq sonli pozitsiyalardagi raqamlarni birga qo'shing va uchga ko'paytiring.
  2. Olingan natijalarga (ikkinchi, to'rtinchi, oltinchi va hk) juft raqamli pozitsiyalardagi raqamlarni (tasdiqlash raqamiga qadar, lekin shu jumladan emas) qo'shing.
  3. Natija qoldig'ini 10 ga bo'ling (ya'ni 10 modulli ish). Agar qoldiq 0 ga teng bo'lsa, u holda 0 raqamini tekshiruv raqami sifatida ishlating, agar 0 bo'lmasa, qoldiqni 10 dan chiqarib, nazorat raqamini oling.

Masalan, to'qimalar qutisi uchun UPC-A shtrix-kodi "036000241457" dir. Oxirgi raqam "7" belgisidir va agar boshqa raqamlar to'g'ri bo'lsa, u holda raqamlarni hisoblash 7 ga teng bo'lishi kerak.

  1. Toq raqamlarni qo'shing: 0 + 6 + 0 + 2 + 1 + 5 = 14.
  2. Natijani 3: 14 × 3 = 42 ga ko'paytiring.
  3. Juft raqamlarni qo'shing: 3 + 0 + 0 + 4 + 4 = 11.
  4. Ikkala natijani birga qo'shing: 42 + 11 = 53.
  5. Tekshirish raqamini hisoblash uchun (53/10) qoldig'ini oling, u ham (53 modul 10) deb nomlanadi, agar 0 bo'lmasa, 10dan chiqaring. Shuning uchun tekshiruv raqamining qiymati 7 ga teng, ya'ni (53/10) ) = 5 qoldiq 3; 10 - 3 = 7.

Yana bir misol: quyidagi oziq-ovqat mahsuloti uchun "01010101010" raqamini hisoblashx".

  1. Toq raqamlarni qo'shing: 0 + 0 + 0 + 0 + 0 + 0 = 0.
  2. Natijani 3: 0 x 3 = 0 ga ko'paytiring.
  3. Juft raqamlarni qo'shing: 1 + 1 + 1 + 1 + 1 = 5.
  4. Ikkala natijani birga qo'shing: 0 + 5 = 5.
  5. Tekshirish raqamini hisoblash uchun (5/10) qoldig'ini oling, u ham (5 modul 10) deb nomlanadi va agar 0 bo'lmasa, 10 dan chiqaring: ya'ni (5/10) = 0 qoldiq 5; (10 - 5) = 5. Shuning uchun tekshiruv raqami x qiymati 5 ga teng.

ISBN 10

O'nta raqamning yakuniy belgisi Xalqaro standart kitob raqami har bir raqamni raqamdagi o'rnini ko'paytirib (o'ngdan hisoblash) va ushbu mahsulotlarning yig'indisini olish uchun hisoblangan raqam. modul 11 - 0. O'ngga eng uzoqdagi raqam (bu 1 ga ko'paytiriladi) - bu yig'indini to'g'ri qilish uchun tanlangan tasdiqlangan raqam. Buning uchun X harfi bilan ifodalanadigan 10 qiymati bo'lishi kerak bo'lishi mumkin. Masalan, ni oling ISBN  0-201-53082-1: Mahsulotlar yig'indisi 0 × 10 + 2 × 9 + 0 × 8 + 1 × 7 + 5 × 6 + 3 × 5 + 0 × 4 + 8 × 3 + 2 × 2 + 1 × 1 = 99 ≡ 0 ( mod 11). Shunday qilib, ISBN haqiqiydir. Shuni esda tutingki, pozitsiyalarni chapdan ham hisoblash mumkin, bu holda tasdiq raqamini 10 ga ko'paytirib, haqiqiyligini tekshirish uchun: 0 × 1 + 2 × 2 + 0 × 3 + 1 × 4 + 5 × 5 + 3 × 6 + 0 × 7 + 8 × 8 + 2 × 9 + 1 × 10 = 143 ≡ 0 (mod 11).

ISBN 13

ISBN 13 (2007 yil yanvarida ishlatilgan) ga teng EAN-13 kod shtrix-kod ostida joylashgan. Uning tekshiruv raqami UPC bilan bir xil tarzda hosil qilinadi, faqat juft raqamlar g'alati raqamlar o'rniga 3 ga ko'paytiriladi.[3]

EAN (GLN, GTIN, EAN raqamlari GS1 tomonidan boshqariladi)

EAN (Evropa maqola raqami ) raqamlarni tekshiring (tomonidan boshqariladi GS1 ) har bir toq pozitsiya sonining 3 ga ko'paytirilishi va keyin juft pozitsiya sonlarining yig'indisi qo'shilishi bilan hisoblanadi. Raqamlar o'ngdan chapga qarab tekshiriladi, shuning uchun birinchi g'alati holat kodning oxirgi raqamidir. Tekshirish raqamini hisoblash uchun natijaning oxirgi raqami 10 dan chiqarib tashlanadi (yoki nol bo'lsa, xuddi shunday qoldiriladi). GS1 raqamli kalkulyator va batafsil hujjatlar onlayn tarzda GS1 veb-sayti.[4]Boshqa bir rasmiy kalkulyator sahifasi GTIN-13 uchun mexanizm bir xil ekanligini ko'rsatadi Global joylashuv raqami / GLN.[5]

Tekshirish raqamlarining boshqa misollari

Xalqaro

AQShda

Markaziy Amerikada

  • Gvatemala soliq raqami (NIT - Número de Identificación Tributaria) asosida modul 11.

Evroosiyoda

Okeaniyada

Algoritmlar

Taniqli algoritmlarga quyidagilar kiradi:

Shuningdek qarang

Adabiyotlar

  1. ^ Kirtland, Jozef (2001). Identifikatsiya raqamlari va raqamli sxemalarni tekshirish. Sinfning resurs materiallari. Amerika matematik assotsiatsiyasi. 4-6 betlar. ISBN  978-0-88385-720-5.
  2. ^ "GS1 Check Digit Calculator". GS1 AQSh. 2006. Arxivlangan asl nusxasi 2008-05-09. Olingan 2008-05-21.
  3. ^ "ISBN foydalanuvchilari uchun qo'llanma". Xalqaro ISBN agentligi. 2005 yil. Olingan 2008-05-21.
  4. ^ "Raqamli kalkulyatorni tekshiring". GS1. 2005 yil. Olingan 2008-05-21.
  5. ^ "GS1 AQSh rasmiy saytida raqamli kalkulyatorni tekshiring".. GS1 AQSh. Olingan 2012-08-09.
  6. ^ http://openfigi.com
  7. ^ "Noyob shaxsiy guvohnoma". Geek Gazette. IEEE talabalar bo'limi (2011 yil kuzi ): 16. Arxivlangan asl nusxasi 2012-10-24 kunlari.
  8. ^ Doktor Chong-Yee Xo (2014 yil 20-yanvar). "IPOS-da Singapur IP-ariza raqamlari uchun yangi format". Singapur Patent blogi. Cantab IP. Olingan 6 iyul 2014.

Tashqi havolalar