में हल करने की पहेली मुझे एक पहेली मिली और मैं इसे पायथन का उपयोग करके हल करना चाहता हूं।पायथन
पहेली:
एक व्यापारी एक 40 किलो वजन जो वह अपने दुकान में प्रयोग किया जाता है। एक बार, यह अपने हाथों से गिर गया और 4 टुकड़ों में तोड़ दिया गया था। लेकिन आश्चर्य की बात है, अब के संयोजन के साथ इन 4 टुकड़ों के संयोजन के साथ 1 किलो से 40 किलोग्राम के बीच वजन कम कर सकते हैं।
तो सवाल यह है कि, उन 4 टुकड़ों के वजन क्या हैं?
अब मैं इसे पायथन में हल करना चाहता था।
केवल बाधा मैं पहेली से मिला 4 टुकड़े की है कि राशि 40. इसी के साथ मैं फ़िल्टर कर सकते हैं सभी 4 मानों जिसका योग के सेट 40.
import itertools as it
weight = 40
full = range(1,41)
comb = [x for x in it.combinations(full,4) if sum(x)==40]
length of comb = 297
अब है है मुझे comb
में मानों के प्रत्येक सेट को जांचने और संचालन के सभी संयोजनों को आजमाने की आवश्यकता है।
जैसे (a,b,c,d)
comb
में मानों का पहला सेट है, मुझे a,b,c,d,a+b,a-b, .................a+b+c-d,a-b+c+d........
और इसी तरह की जांच करने की आवश्यकता है।
मैंने बहुत कोशिश की, लेकिन मैं इस चरण में फंस गया हूं, यानी 4 मानों के प्रत्येक सेट में गणना के इन सभी संयोजनों को कैसे जांचें।
प्रश्न:
1) मुझे लगता है कि मैं एक सूची [a,b,c,d] and [+,-]
के सभी संभव संयोजन पाने के लिए की जरूरत है।
2) क्या किसी के पास एक बेहतर विचार है और मुझे बताएं कि यहां से आगे कैसे जाना है?
इसके अलावा, मैं इसे बाहरी पुस्तकालयों की सहायता के बिना पूरी तरह से करना चाहता हूं, केवल पायथन के मानक पुस्तकालयों का उपयोग करने की आवश्यकता है।
EDIT: देर से जानकारी के लिए खेद है। इसका जवाब है (1,3, 9, 27), जिसे मैंने कुछ साल पहले पाया था। मैंने जवाब की जांच की है और सत्यापित किया है।
संपादित करें: वर्तमान में, fraxel
का उत्तर time = 0.16 ms
के साथ सही काम करता है। एक बेहतर और तेज़ दृष्टिकोण हमेशा स्वागत है।
सादर
ARK
पहेली है कि तुलना में जटिल काम है; मुझे यकीन नहीं है कि आप आसानी से इसे बलपूर्वक मजबूर कर सकते हैं। चाल यह है कि, कुछ वजन मापने के लिए, उसे पैमाने के दोनों तरफ वजन के टुकड़े जोड़ने की आवश्यकता हो सकती है। एक सरल संस्करण के बारे में सोचें: 4 किलो वजन को 2 टुकड़ों में तोड़ दें जो किसी भी वजन को 4 किलो तक माप सकते हैं। जवाब 1 किलो टुकड़ा और 3 किलो टुकड़ा है। 2 किलोग्राम मापने के लिए, आपको स्केल के प्रत्येक तरफ टुकड़ों में से एक रखना होगा। –
@JacobM को जाने का सबसे अच्छा तरीका है: एक सरल समस्या से शुरू करें और देखें कि क्या आपको ऐसा पैटर्न नहीं मिल रहा है जो आपको अधिक जटिल समस्या को हल करने की अनुमति देता है। साथ ही, ध्यान रखें कि, जब तक कि आप सुनिश्चित न हों कि प्रत्येक वजन अद्वितीय है, संयोजन आपको वह नहीं देगा जो आप चाहते हैं। (इसे देखने के लिए, वजन को 10 और पूर्ण श्रेणी (1,10) में बदलने का प्रयास करें। इसके साथ खेलने के लिए आसान है।) –
@ जैकबैम ... हाँ .. ज़ाहिर है .. यानी सवाल। वांछित वजन प्राप्त करने के लिए आप पैमाने के दोनों किनारों पर भार डाल सकते हैं। यानी मैंने प्रश्न में 'ऋणात्मक चिह्न' का उल्लेख किया है। यानी 'ए-बी, ए-बी + सी-डी ....'। 'शून्य' इंगित करता है कि वजन अन्य पैमाने पर रखा जाता है। मुझे लगता है कि मुझे इसे प्रश्न में समझा देना है। अधिसूचना के लिए धन्यवाद। –