Số sinh Na Uy bao gồm 11 chữ số, bao gồm các cách sau:
DDMMYYiiikk
DD
là ngày (từ 01-31)MM
là tháng (từ 01-12)YY
là năm (từ 00-99). Nó không được phân biệt giữa 1900 và 2000iii
là "số cá nhân"kk
là hai chữ số kiểm soát
iii
được xác định bởi năm sinh và giới tính theo cách sau
- 0000-1900: Bỏ qua, có một số trường hợp không nhất quán và đặc biệt
- 1900-1999: Phạm vi = 000-499
- 2000-2039: Phạm vi = 500-999
- Nữ: Số chẵn (và 000)
- Nam: số lẻ
Các số kiểm soát được xác định theo cách sau:
Hãy gọi 11 chữ số:
d1 d2 m1 m2 y1 y2 i1 i2 i3 k1 k2
Sau đó, các chữ số điều khiển có thể được tính bằng các phương trình:
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).
Đối với một số kết hợp, các số điều khiển k1
hoặc k2
có thể trở thành 10
. Nếu đó là trường hợp, số sẽ không hợp lệ.
Nếu mô đun tổng 11 cho k1
hoặc k2
là 11, tức là k1 = 11 - (11 mod 11)
, chữ số điều khiển sẽ là 0, không phải 11.
Thử thách
Lấy một chữ cái, M
hoặc F
(nam hoặc nữ), và một số mười một chữ số làm đầu vào, và kiểm tra xem Số sinh có hợp lệ theo các quy tắc trên không.
- Định dạng đầu vào và thứ tự là tùy chọn
- 11 số phải là một số đơn hoặc một chuỗi liên tiếp (bạn không thể lấy đầu vào là
DD, MM, YY, iii, kk
). - Bạn có thể cho rằng ngày hợp lệ (310699xxxxx sẽ không được cung cấp làm đầu vào)
- Đầu ra là một giá trị trung thực / sai lệch (1/0, đúng / sai, v.v.)
- Chương trình hoặc chức năng
- Tất cả các quy tắc tiêu chuẩn được áp dụng
Bạn có thể tìm thấy tất cả các số hợp lệ trên trang này (bằng tiếng Na Uy) bằng cách chọn một ngày.
Ví dụ:
M, 01010099931
True
F, 01029042620
True
M, 0101009841
False
F, 01010051866
True
F, 08021690849
True
M, 01029040105
True
M, 01029037473
False
Mã ngắn nhất trong byte thắng.
["Q", "01010099931"]
trở vềtrue
không?)