หมายเลขเกิดนอร์เวย์ประกอบด้วยตัวเลข 11 หลักประกอบด้วยวิธีต่อไปนี้:
DDMMYYiiikk
DD
เป็นวัน (ตั้งแต่ 01-31)MM
คือเดือน (จาก 01-12)YY
คือปี (ตั้งแต่ 00-99) มันไม่แตกต่างระหว่าง 1900 และ 2000iii
คือ "หมายเลขบุคคล"kk
เป็นตัวเลขควบคุมสองหลัก
iii
จะถูกกำหนดโดยเพศปีและเพศด้วยวิธีต่อไปนี้
- 0000-1900: ไม่สนใจมีบางกรณีที่ไม่สอดคล้องกันและเป็นกรณีพิเศษ
- 2443-2542: ช่วง = 000-499
- 2000-2039: ช่วง = 500-999
- หญิง: เลขคู่ (และ 000)
- ชาย: ตัวเลขที่แปลก
หมายเลขควบคุมจะถูกกำหนดด้วยวิธีต่อไปนี้:
ลองเรียก 11 หลัก:
d1 d2 m1 m2 y1 y2 i1 i2 i3 k1 k2
จากนั้นตัวเลขควบคุมสามารถคำนวณได้โดยใช้สมการ:
k1 = 11 - ((3 * d1 + 7 * d2 + 6 * m1 + 1 * m2 + 8 * y1 + 9 * y2 + 4 * i1 + 5 * i2 + 2 * i3) mod 11)
k2 = 11 - ((5 * d1 + 4 * d2 + 3 * m1 + 2 * m2 + 7 * y1 + 6 * y2 + 5 * i1 + 4 * i2 + 3 * i3 + 2 * k1) mod 11).
สำหรับบางชุดตัวเลขควบคุมk1
หรือจะกลายเป็นk2
10
หากเป็นเช่นนั้นหมายเลขจะไม่ถูกต้อง
หากโมดูลัสผลรวม 11 สำหรับk1
หรือk2
เท่ากับ 11 คือk1 = 11 - (11 mod 11)
ดังนั้นหลักควบคุมจะเป็น 0 ไม่ใช่ 11
ท้าทาย
ใช้ตัวอักษรM
หรือF
(ชายหรือหญิง) และหมายเลขสิบเอ็ดหลักเป็นอินพุตและตรวจสอบว่าหมายเลขเกิดมีความถูกต้องตามกฎข้างต้น
- รูปแบบอินพุตและคำสั่งซื้อเป็นทางเลือก
- ตัวเลข 11 ตัวต้องเป็นตัวเลขเดียวหรือเป็นสตริงติดต่อกัน (คุณไม่สามารถรับอินพุตเป็น
DD, MM, YY, iii, kk
) - คุณสามารถสันนิษฐานได้ว่าวันที่นั้นถูกต้อง (310699xxxxx จะไม่ได้รับเป็นอินพุต)
- เอาท์พุทเป็นค่าความจริง / เท็จ (1/0, จริง / เท็จ ฯลฯ )
- โปรแกรมหรือฟังก์ชั่น
- ใช้กฎมาตรฐานทั้งหมด
คุณสามารถค้นหาหมายเลขที่ถูกต้องทั้งหมดในหน้านี้ (ภาษานอร์เวย์) โดยเลือกวันที่
ตัวอย่าง:
M, 01010099931
True
F, 01029042620
True
M, 0101009841
False
F, 01010051866
True
F, 08021690849
True
M, 01029040105
True
M, 01029037473
False
โค้ดที่สั้นที่สุดในหน่วยไบต์ชนะ
["Q", "01010099931"]
ส่งคืนtrue
หรือไม่)