एक चक्रीय अंतर सेट एक अद्वितीय संपत्ति के साथ सकारात्मक पूर्णांक का एक सेट है:
- आज्ञा देना
nसेट में सबसे बड़ा पूर्णांक है। - आज्ञा
rदेना किसी भी पूर्णांक (जरूरी नहीं कि सेट में) 0 से अधिक हो, लेकिन उससे कम या उसके बराबर होn/2। - आज्ञा देना
kहो समाधान की संख्या को(b - a) % n = rजहांaऔरbसेट के किसी भी सदस्य हैं। प्रत्येक समाधान एक आदेशित जोड़ी है(a,b)। (यह भी ध्यान दें कि मोडुलो का यह संस्करण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)?