प्रेरणा : कभी-कभी किसी सूची में कुछ आइटम आपके योग की ओर नहीं जाते हैं। उदाहरण के लिए, पंक्तियों में समतल यात्रियों की गिनती, जहाँ बच्चे माता-पिता की गोद में बैठते हैं।
चुनौती : आइटम की एक सूची को विखंडू में विभाजित करने के लिए एक कार्यक्रम लिखें। प्रत्येक चंक (संभवतः अंतिम को छोड़कर) एक ही आकार है , जहां आकार को एक विधेय फ़ंक्शन से गुजरने वाली वस्तुओं की संख्या के रूप में परिभाषित किया गया है।
नियम :
- आपका कार्यक्रम लेना चाहिए
- मदों की एक सूची
- एक धनात्मक पूर्णांक चंक आकार
- एक विधेय समारोह (एक आइटम लेता है, और सही या गलत लौटाता है)
- आपको इनपुट सूची विभाजन को विखंडू में वापस करना होगा
- प्रत्येक हिस्सा वस्तुओं की एक सूची है
- कुल मिलाकर आइटम को उसी क्रम में रहना चाहिए, जिसमें कोई भी अव्यवस्थित न हो
- प्रत्येक चंक में विधेय से गुजरने वाली वस्तुओं की संख्या (संभवतः अंतिम को छोड़कर) इनपुट चंक आकार से मेल खाना चाहिए।
- विधेय को विफल करने वाली वस्तुओं को इस आकार की ओर नहीं गिनना चाहिए
- विधेय को विफल करने वाले आइटम हैं
- अभी भी आउटपुट विखंडू में शामिल है
- जल्द से जल्द चारपाई के लिए आवंटित, इस मामले में कि एक ठग "पूर्ण" है, लेकिन अगले आइटम विधेय को विफल कर रहे हैं
- इस प्रकार अंतिम हिस्सा पूरी तरह से विधेय को विफल करने वाली वस्तुओं से युक्त नहीं हो सकता है
- अंतिम हिस्सा चंक आकार से कम हो सकता है क्योंकि सभी मदों का हिसाब लगाया गया है।
गैर निकास उदाहरण:
सबसे सरल उदाहरण 1
s और 0
s पर विचार करना है , जहां विधेय कार्य है x ==> x > 0
। इस स्थिति में, sum
प्रत्येक चंक का हिस्सा चंक आकार से मेल खाना चाहिए।
- आइटम:
[]
, आकार:2
, विधेय:x > 0
-> या तो[]
या[[]]
- आइटम:,
[0, 0, 0, 0, 0, 0]
आकार:,2
विधेय:x > 0
->[[0, 0, 0, 0, 0, 0]]
- आइटम:,
[0, 1, 1, 0]
आकार:,2
विधेय:x > 0
->[[0, 1, 1, 0]]
- आइटम:,
[0, 1, 1, 0, 1, 0, 0]
आकार:,2
विधेय:x > 0
->[[0, 1, 1, 0], [1, 0, 0]]
- आइटम:,
[0, 1, 0, 0, 1, 0, 1, 1, 0]
आकार:,2
विधेय:x > 0
->[[0, 1, 0, 0, 1, 0], [1, 1, 0]]
और चलो विमान यात्रियों के साथ समाप्त करते हैं जहां बच्चे माता-पिता की गोद में बैठते हैं । A
वयस्क के लिए, b
बच्चे के लिए, प्लेन पंक्ति 3
चौड़ी होती है, वयस्क हमेशा अपने बच्चे से पहले सूचीबद्ध होते हैं:
- आइटम:,
[A, b, A, b, A, A, A, b, A, b, A, A, b]
आकार:,3
विधेय:x => x == A
->[[A, b, A, b, A], [A, A, b, A, b], [A, A, b]]