। आइए जॉय रॉबर्ट के समाधान जादू को कॉल करें फंक्शन 1 और एरिक का समाधान जादू समारोह 2।
magicFunction1 बहुत छोटा और सुरुचिपूर्ण है। मुझे इसके बारे में क्या पसंद नहीं है कि अगर मेरे पास संख्याओं की एक बड़ी सूची है और पहला व्यक्ति 10 से बड़ा है तो यह अब भी सबसे बड़ी संख्या को समझने के सभी काम करेगा जो आवश्यक नहीं है। एक बेंचमार्क मैं
In[1]:= data = Table[RandomInteger[{1, 10}], {10000000}];
In[2]:= Timing[magicFunction1[data, 10]]
Out[2]= {0.017551, False}
In[2]:= Timing[magicFunction2[data, 10]]
Out[2]= {10.0173, False}
In[2]:= Timing[magicFunction3[data, 10]]
Out[2]= {7.10192, False}
In[2]:= Timing[magicFunction4[data, 10]]
Out[2]= {0.402562, False}
तो मेरी सर्वश्रेष्ठ उत्तर magicFunction4 है पाया कर
magicFunction3[lst_, val_] :=
Position[# < val & /@ lst, False, 1, 1] == {}
और
magicFunction4[lst_, val_] :=
Cases[lst, x_ /; x >= val, 1, 1] == {}
,: यह भी magicFunction2
पर लागू होता है मैं निम्न दो समाधान विकसित लेकिन मुझे अभी भी पता नहीं है कि यह जादू की तुलना में धीमी क्यों है। मैं यह भी अनदेखा करता हूं कि MagicFunction3 और MagicFunction4 के बीच इतना बड़ा प्रदर्शन अंतर क्यों है।
धन्यवाद, अच्छा विचार। – Nope
बस इसे बाहर निकालने के लिए: 'जादू समारोह [lst_, val_]: = अधिकतम [lst]
dreeves