Tóm tắt điều hành: kiểm tra xem một chuỗi đầu vào của số nguyên có "được chấp nhận" hay không, có nghĩa là nó không bao gồm tất cả các lớp dư cho bất kỳ mô đun nào.
Trình tự "được chấp nhận" là gì?
Cho một số nguyên m 2, các lớp dư modulo m chỉ là m tiến trình số học có thể có của sự khác biệt chung m. Ví dụ, khi m = 4, 4 lớp dư lượng modulo 4 là
..., -8, -4, 0, 4, 8, 12, ...
..., -7, -3, 1, 5, 9, 13, ...
..., -6, -2, 2, 6, 10, 14, ...
..., -5, -1, 3, 7, 11, 15, ...
Lớp dư thứ k bao gồm tất cả các số nguyên có phần dư khi chia cho m bằng k. (miễn là người ta định nghĩa "phần còn lại" chính xác cho số nguyên âm)
Một chuỗi các số nguyên a1, a2, ..., ak là modulo m được chấp nhận nếu nó không giao nhau ít nhất một trong các lớp dư. Ví dụ: {0, 1, 2, 3} và {-4, 5, 14, 23} không được chấp nhận modulo 4, nhưng {0, 1, 2, 4} và {0, 1, 5, 9} và {0, 1, 2, -3} là modulo được chấp nhận 4. Ngoài ra, {0, 1, 2, 3, 4} không được chấp nhận modulo 4, trong khi {0, 1, 2} là modulo 4 chấp nhận.
Cuối cùng, một chuỗi các số nguyên chỉ đơn giản là được chấp nhận nếu nó là modulo m được chấp nhận cho mọi số nguyên m 2.
Các thách thức
Viết chương trình hoặc hàm lấy một chuỗi số nguyên làm đầu vào và trả về giá trị Chân lý (nhất quán) nếu chuỗi đó được chấp nhận và giá trị Falsy (nhất quán) nếu chuỗi không được chấp nhận.
Chuỗi đầu vào của số nguyên có thể ở bất kỳ định dạng hợp lý. Bạn có thể giả sử rằng chuỗi đầu vào có ít nhất hai số nguyên. (Bạn cũng có thể cho rằng các số nguyên đầu vào là khác biệt nếu bạn muốn, mặc dù điều đó có thể không có ích.) Bạn phải có khả năng xử lý các số nguyên dương và âm (và 0).
Mã thông thường : câu trả lời ngắn nhất, tính bằng byte, thắng.
Đầu vào mẫu
Mỗi chuỗi đầu vào sau đây sẽ cung cấp một giá trị Truthy:
0 2
-1 1
-100 -200
0 2 6
0 2 6 8
0 2 6 8 12
0 4 6 10 12
-60 0 60 120 180
0 2 6 8 12 26
11 13 17 19 23 29 31
-11 -13 -17 -19 -23 -29 -31
Mỗi chuỗi đầu vào sau đây sẽ cung cấp một giá trị Falsy:
0 1
-1 4
-100 -201
0 2 4
0 2 6 10
0 2 6 8 14
7 11 13 17 19 23 29
-60 0 60 120 180 240 300
Lời khuyên
- Lưu ý rằng bất kỳ chuỗi nào có 3 số nguyên trở xuống sẽ được tự động chấp nhận modulo 4. Nói chung, một chuỗi độ dài k sẽ tự động được chấp nhận modulo m khi m> k. Theo sau đó, việc kiểm tra tính dễ chấp nhận thực sự chỉ yêu cầu kiểm tra số lượng hữu hạn của m.
- Cũng lưu ý rằng 2 chia 4 và bất kỳ chuỗi nào có thể chấp nhận modulo 2 (nghĩa là tất cả hoặc chẵn) đều tự động được chấp nhận modulo 4. Nói chung, nếu m chia n và một chuỗi là modulo m được chấp nhận, thì đó là tự động chấp nhận modulo n. Để kiểm tra sự chấp nhận, do đó, chỉ nên xem xét nguyên tố m nếu bạn muốn.
- Nếu a1, a2, ..., ak là một chuỗi được chấp nhận, thì a1 + c, a2 + c, ..., ak + c cũng được chấp nhận cho bất kỳ số nguyên c (dương hoặc âm).
Toán học liên quan (đọc tùy chọn)
Đặt a1, a2, ..., ak là một chuỗi các số nguyên. Giả sử có vô số số nguyên n sao cho n + a1, n + a2, ..., n + ak đều là số nguyên tố. Sau đó, thật dễ dàng để chỉ ra rằng a1, a2, ..., ak phải được chấp nhận. Thật vậy, giả sử a1, a2, ..., ak không được chấp nhận và cho m là một số sao cho a1, a2, ..., ak không được chấp nhận modulo m. Sau đó, bất kể n chúng ta chọn gì, một trong các số n + a1, n + a2, ..., n + ak phải là bội của m, do đó không thể là số nguyên tố.
Các k-tuples thủ phỏng đoán là ngược lại của tuyên bố này, đó vẫn là một vấn đề rộng mở trong lý thuyết số: nó khẳng định rằng nếu a1, a2, ..., ak là một chuỗi chấp nhận (hoặc k-tuple ), sau đó nên vô hạn nhiều số nguyên n sao cho n + a1, n + a2, ..., n + ak đều là số nguyên tố. Ví dụ, dãy 0, 2 được chấp nhận đưa ra tuyên bố rằng sẽ có vô số số nguyên n sao cho cả n và n + 2 đều là số nguyên tố, đây là phỏng đoán số nguyên tố sinh đôi (vẫn chưa được chứng minh).
-60 0 60 120 180 240 300
giao nhau với mọi dư lượng modulo 7, vì vậy nó không được chấp nhận.
[_60:0:60:120:180]
đang cho tôi sự thật; thực sự nó không giao nhau ít nhất một lớp trong mỗim
từ2
để5
hòa nhập; thêm vào đó, nó cắt chỉ có một lớp học trong mỗim
từ2
để5
toàn diện.