ชุดวงจรผลต่างคือชุดของจำนวนเต็มบวกที่มีคุณสมบัติเฉพาะ:
- อนุญาต
nเป็นจำนวนเต็มที่มากที่สุดในชุด - อนุญาต
rเป็นจำนวนเต็มใด ๆ (ไม่จำเป็นต้องอยู่ในชุด) มากกว่า 0n/2แต่น้อยกว่าหรือเท่ากับ - อนุญาต
kเป็นจำนวนของการแก้ปัญหาเพื่อ(b - a) % n = rที่aและbเป็นสมาชิกของชุดใด ๆ(a,b)วิธีการแก้ปัญหาแต่ละคนเป็นคู่ที่ได้รับคำสั่ง (โปรดทราบว่า modulo รุ่นนี้ทำให้ตัวเลขติดลบเป็นบวกโดยเพิ่มnลงไปซึ่งแตกต่างจากการใช้งานในหลายภาษา) - ท้ายที่สุดถ้าหากว่านี่เป็นชุดความแตกต่างแบบวนรอบค่าของ
kไม่ขึ้นอยู่กับการเลือกของrคุณ นั่นคือค่าทั้งหมดของการrให้จำนวนเดียวกันของการแก้ปัญหาเพื่อความสอดคล้องข้างต้น
สิ่งนี้สามารถแสดงได้ด้วยตัวอย่างต่อไปนี้:
Cyclic difference set: {4,5,6,8,9,11}
0 < r <= 11/2, so r = 1,2,3,4,5
r=1: (4,5) (5,6) (8,9)
r=2: (4,6) (6,8) (9,11)
r=3: (5,8) (6,9) (8,11)
r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4
r=5: (4,9) (6,11) (11,5)
แต่ละค่าของrมีจำนวนโซลูชั่นเท่ากัน 3 ในกรณีนี้ดังนั้นนี่คือชุดผลต่างแบบวน
อินพุต
อินพุตจะเป็นรายการของจำนวนเต็มบวก เนื่องจากนี่เป็นคุณสมบัติที่กำหนดให้ถือว่าอินพุตไม่ได้เรียงลำดับ คุณสามารถคิดว่าnอย่างน้อย2แม้ว่าkอาจจะเป็นศูนย์
เอาท์พุต
โปรแกรม / ฟังก์ชั่นของคุณควรส่งออกค่าความจริงหากชุดนั้นเป็นชุดผลต่างแบบวนหรือเป็นค่าที่ไม่แน่นอน
กรณีทดสอบ
ชุดความแตกต่างของวงจรที่ถูกต้อง:
10,12,17,18,21
7,5,4
57,1,5,7,17,35,38,49
1,24,35,38,40,53,86,108,114,118,135,144,185,210,254,266,273
16,3,19,4,8,10,15,5,6
8,23,11,12,15,2,3,5,7,17,1
( แหล่งข้อมูลแม้ว่าการประชุมของพวกเขาจะแตกต่างกัน)
ชุดความแตกต่างของรอบไม่ถูกต้อง:
1,2,3,4,20
57,3,5,7,17,35,38,49
3,4,5,9
14,10,8
bและaเป็นตัวเลขเดียวกัน(b-a)%n = 0แต่ 0 ไม่ใช่ค่าที่คุณกำลังมองหาวิธีแก้ไข ดังนั้นจึงไม่มีข้อห้ามที่ชัดเจนเกี่ยวกับพวกเขาเป็นหมายเลขเดียวกัน แต่พวกเขาจะไม่เป็น
7 7 7เป็นข้อมูลที่ไม่ถูกต้อง ชุดไม่ได้ทำซ้ำค่า
7 7 7เป็นคำขอของผู้ใช้รายอื่น แต่ฉันลบออกแล้วเนื่องจากไม่ใช่ชุด
rโดย0 < r <= max(input)/2แต่0 < r < max(input)เพราะเราสามารถขอรับr > max(input)/2กรณีโดยเพียงแค่พลิกลบในr <= max(input)/2กรณี
aและbเป็นสมาชิกคนเดียวกัน (ไม่จำเป็นa ≠ b) หรือไม่?