ชุดวงจรผลต่างคือชุดของจำนวนเต็มบวกที่มีคุณสมบัติเฉพาะ:
- อนุญาต
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
) หรือไม่?