บทสรุปผู้บริหาร: ทดสอบว่าลำดับอินพุตของจำนวนเต็มเป็น "ที่ยอมรับได้" หมายความว่ามันไม่ครอบคลุมคลาสที่เหลือทั้งหมดสำหรับโมดูลัสใด ๆ
ลำดับ "ที่ยอมรับได้" คืออะไร
รับจำนวนเต็ม m ≥ 2, คลาสตกค้างมอดูโล mเป็นเพียงความก้าวหน้าทางคณิตศาสตร์ m ที่เป็นไปได้ของความแตกต่างทั่วไป m ตัวอย่างเช่นเมื่อ m = 4 คลาสที่เหลือ 4 แบบโมดูโล 4 คือ
..., -8, -4, 0, 4, 8, 12, ...
..., -7, -3, 1, 5, 9, 13, ...
..., -6, -2, 2, 6, 10, 14, ...
..., -5, -1, 3, 7, 11, 15, ...
คลาส kth residue ประกอบด้วยจำนวนเต็มทั้งหมดที่เหลือเมื่อหารด้วย m เท่ากับ k (ตราบเท่าที่หนึ่งกำหนด "เหลือ" ถูกต้องสำหรับจำนวนเต็มลบ)
ลำดับของจำนวนเต็ม a1, a2, ... , ak เป็นแบบโมดูโล m ที่ยอมรับได้หากไม่สามารถตัดกันอย่างน้อยหนึ่งคลาสที่เหลือ ตัวอย่างเช่น {0, 1, 2, 3} และ {-4, 5, 14, 23} ไม่ใช่ modulo ที่ยอมรับได้ 4 แต่ {0, 1, 2, 4} และ {0, 1, 5, 9} และ {0, 1, 2, -3} เป็น modulo ที่ยอมรับได้นอกจากนี้ {0, 1, 2, 3, 4} ก็ไม่อนุญาต modulo 4 ในขณะที่ {0, 1, 2} เป็น modulo ที่ยอมรับได้
ในที่สุดลำดับของจำนวนเต็มสามารถยอมรับได้ถ้ามันเป็นแบบโมดูโล m ที่ยอมรับได้สำหรับทุกจำนวนเต็ม m ≥ 2
ความท้าทาย
เขียนโปรแกรมหรือฟังก์ชั่นที่รับลำดับของจำนวนเต็มเป็นอินพุตและส่งกลับค่าจริง (สอดคล้องกัน) หากลำดับนั้นยอมรับได้และค่า Falsy (สอดคล้องกัน) หากลำดับไม่ยอมรับ
ลำดับการป้อนของจำนวนเต็มสามารถอยู่ในรูปแบบที่เหมาะสม คุณอาจคิดว่าลำดับการป้อนข้อมูลมีจำนวนเต็มอย่างน้อยสองตัว (คุณอาจจะสมมติว่าจำนวนเต็มอินพุทนั้นแตกต่างกันถ้าคุณต้องการแม้ว่ามันอาจจะไม่ได้ช่วยก็ตาม) คุณต้องสามารถจัดการกับจำนวนเต็มบวกและลบ (และ 0)
การให้คะแนนโค้ดกอล์ฟแบบปกติ: คำตอบที่สั้นที่สุดเป็นไบต์ชนะ
ตัวอย่างอินพุต
ลำดับอินพุตต่อไปนี้แต่ละค่าควรให้ค่าความจริง:
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
ลำดับอินพุตต่อไปนี้แต่ละค่าควรให้ค่าเท็จ:
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
เคล็ดลับ
- โปรดสังเกตว่าลำดับใด ๆ ของจำนวนเต็ม 3 ตัวหรือน้อยกว่านั้นเป็นโมดูโลที่ยอมรับได้โดยอัตโนมัติ 4 โดยทั่วไปแล้วลำดับของความยาว k จะเป็นแบบโมดูโลที่ยอมรับได้โดยอัตโนมัติเมื่อ m> k มันตามมาว่าการทดสอบความสามารถในการยอมรับต้องใช้การตรวจสอบจำนวน จำกัด ของ m เท่านั้น
- โปรดสังเกตว่า 2 หาร 4 และลำดับใด ๆ ที่เป็นแบบโมดูโลที่ยอมรับได้ 2 (นั่นคือทั้งหมดหรือคี่ทั้งหมด) จะถูกยอมรับโดยอัตโนมัติแบบโมดูโล 4 โดยทั่วไปถ้า m หาร n และลำดับคือโมดูโลที่ยอมรับได้มันก็คือ ยอมรับ modulo โดยอัตโนมัติ ในการตรวจสอบความสามารถในการยอมรับดังนั้นจึงพอเพียงที่จะพิจารณาเฉพาะนายกเท่านั้นหากคุณต้องการ
- ถ้า a1, a2, ... , ak เป็นลำดับที่ยอมรับได้ดังนั้น a1 + c, a2 + c, ... , ak + c ก็ยอมรับได้เช่นกันสำหรับจำนวนเต็มใด ๆ c (บวกหรือลบ)
ความเกี่ยวข้องทางคณิตศาสตร์ (การอ่านเพิ่มเติม)
ให้ a1, a2, ... , ak เป็นลำดับของจำนวนเต็ม สมมติว่ามีจำนวนเต็ม n จำนวนนับไม่ถ้วนเช่น n + a1, n + a2, ... , n + ak ล้วนยอดเยี่ยม จากนั้นมันง่ายที่จะแสดงว่า a1, a2, ... , ak ต้องยอมรับได้ ที่จริงสมมติว่า a1, a2, ... , ak ไม่อนุญาตและให้ m เป็นตัวเลขเช่นนั้นว่า a1, a2, ... , ak ไม่ยอมรับ modulo m จากนั้นไม่ว่าเราจะเลือกอะไร n หนึ่งในตัวเลข n + a1, n + a2, ... , n + ak จะต้องมีค่าเป็นทวีคูณของ m ดังนั้นจึงไม่เหมาะ
การคาดคะเน k-tuples ที่สำคัญคือการสนทนาของคำสั่งนี้ซึ่งยังคงเป็นปัญหาที่เปิดกว้างในทฤษฎีจำนวน: มันอ้างว่าถ้า a1, a2, ... , ak เป็นลำดับที่ยอมรับได้ (หรือk-tuple ) จากนั้นมี ควรเป็นจำนวนเต็ม n อย่างไม่มีที่สิ้นสุดที่ n + a1, n + a2, ... , n + ak ล้วนเป็นนายก ตัวอย่างเช่นลำดับที่ยอมรับได้ 0, 2 ให้ผลคำสั่งว่าควรมีจำนวนเต็ม n จำนวนอนันต์เช่นที่ทั้ง n และ n + 2 เป็นจำนวนเฉพาะ, นี่คือการคาดเดาสองช่วง (ยังไม่ได้รับการพิสูจน์)
-60 0 60 120 180 240 300
ปริภูมิโมดูโลของคลาสที่เหลือทั้งหมด 7 ดังนั้นจึงไม่อนุญาตให้ใช้
[_60:0:60:120:180]
ให้ฉันจริง แท้จริงแล้วมันไม่ได้ตัดกันอย่างน้อยหนึ่งคลาสในทุกระดับm
ตั้งแต่2
ไปถึง5
รวม นอกจากนี้มันตัดเพียงชั้นเดียวในทุกm
จาก2
เพื่อ5
รวม