# Using division operator to find 
# minimum of three numbers 
def smallest(x, y, z): 

    if (not (y / x)): # Same as "if (y < x)" 
        return y if (not (y / z)) else z 
    return x if (not (x / z)) else z 

# Driver Code 
if __name__== "__main__": 

    x = 78
    y = 88
    z = 68
    print("Minimum of 3 numbers is", 
                smallest(x, y, z)) 

# This code is contributed 
# by ChitraNayal 

इसलिए मैंने उपरोक्त कोड को न्यूनतम फ़ंक्शन का उपयोग किए बिना तीन संख्याओं में से सबसे छोटा खोजने के लिए सबसे छोटी विधि पर पाया। मुझे not(y/z) और उसके बाद के बाकी कोड का अर्थ बिल्कुल समझ में नहीं आया। क्या इसका मतलब बूलियन मान है

0
Tanmay 4 अप्रैल 2020, 22:52
1
हाँ not एक बूलियन में परिणाम करता है
 – 
Red Cricket
4 अप्रैल 2020, 22:54
उस अभिव्यक्ति को अलग-अलग डेटा खिलाने का प्रयास करें और देखें कि क्या परिणाम मिलते हैं। 12 / 4 बनाम 4 / 12, फिर not (12 / 4) और not (4 / 12) आजमाएं।
 – 
Carcigenicate
4 अप्रैल 2020, 22:54
तो नहीं (y/z) का मतलब क्या है? मेरा मतलब है कि y/z का क्या मतलब है जिसके परिणामस्वरूप कुछ बूलियन मान हो सकते हैं
 – 
Tanmay
4 अप्रैल 2020, 22:56
यदि ऋणात्मक संख्याएँ शामिल हैं तो यह काम नहीं करेगा
 – 
user2390182
4 अप्रैल 2020, 22:56

4 जवाब

यह मानते हुए कि यह पायथन 2 है, दो पूर्णांकों को विभाजित करने पर पूर्णांक विभाजन का उपयोग होता है, जो वापस आता है केवल "संपूर्ण" भाग - अर्थात, दशमलव बिंदु के बाईं ओर का भाग। इस प्रकार, यदि x, y से छोटा है, तो x/y 0 लौटाएगा, जिसका मूल्यांकन बूलियन संदर्भ में False के रूप में होता है, इसलिए not(x/y) यह पूछने के बराबर है कि x, y से छोटा है या नहीं।

2
Mureinik 4 अप्रैल 2020, 22:56
ओह, ठीक है! मैं पायथन 3 का उपयोग कर रहा हूं। इसलिए जब भी मैं ऑपरेशन 1/2 कर रहा था, तो इसका परिणाम 0.5 था, जिसमें बूलियन प्रकार नहीं है। इसलिए x/y को x//y से बदलना होगा सही मदद?
 – 
Tanmay
4 अप्रैल 2020, 22:59
हाँ, पायथन 3 के लिए आपको इस स्निपेट को काम करने के लिए // का उपयोग करना होगा
 – 
Mureinik
4 अप्रैल 2020, 23:00

जब आप सत्यता और पूर्णांकों की खोज कर रहे हैं और एक छोटा गैर-मिनट कार्यान्वयन चाहते हैं, तो निम्नलिखित काम करेंगे =)

def smallest(x, y, z):
    return ((x,z)[z<x],(y,z)[z<y])[y<x]
0
user2390182 4 अप्रैल 2020, 23:03
def smallest(x, y, z): 

if (not (y // x)): # Same as "if (y < x)" 
    return y if (not (y // z)) else z 
return x if (not (x // z)) else z 
print(smallest(3,5,7))

मुझे लगता है कि सामान्य विभाजन (/) के बजाय फर्श विभाजन (//) का उपयोग करना था। इसके साथ हम शून्य को विभाजित करने के वापसी मूल्य के रूप में कह सकते हैं उदाहरण के लिए 3//5 और शून्य को पायथन में एक झूठा मान माना जाता है।

1
George Marcus 4 अप्रैल 2020, 23:11

यदि आप सबसे छोटी विधि (मिनट का उपयोग किए बिना) की तलाश कर रहे हैं, तो एक वैकल्पिक तरीका एक सरणी को सॉर्ट करना और पहला तत्व प्राप्त करना है।

x = 78
y = 88
z = 68

numbers = [x, y, z]
numbers.sort()
print(numbers[0])
0
Jens 4 अप्रैल 2020, 23:19