randrange(start, stop)केवल पूर्णांक तर्क देता है। तो मुझे दो फ्लोट मानों के बीच एक यादृच्छिक संख्या कैसे मिलेगी?
randrange(start, stop)केवल पूर्णांक तर्क देता है। तो मुझे दो फ्लोट मानों के बीच एक यादृच्छिक संख्या कैसे मिलेगी?
जवाबों:
यादृच्छिक का प्रयोग करें। वर्दी (ए, बी) :
>>> random.uniform(1.5, 1.9)
1.8733202628557872
Returns a random floating point number N such that a <= N <= b for a <= b and b <= N <= a for b < aदूसरे शब्दों में उत्पादन Nया तो इनपुट के बराबर कर सकते हैं aऔर b। इस मामले में 1.5और 1.9।
.uniformफ़ंक्शन का उपयोग किए बिना ऐसा करने का एक और तरीका है , लेकिन इसके बजाय .randomया तो randrange?
1.5 + random.random() * (1.9 - 1.5)को इसे करना चाहिए, भले ही चश्मे के अनुसार यह कभी 1.9भी ठीक नहीं लौटेगा (सिद्धांत में भी)।
uniform(a, b)के रूप में कार्यान्वित किया जाता है a + (b-a) * random()और रिटर्न ) रेंज [क, ख या [क, ख] में एक यादृच्छिक संख्या गोलाई के आधार पर github.com/python/cpython/blob/...
यदि आप बिंदु के दाईं ओर एन अंकों के साथ एक यादृच्छिक फ्लोट उत्पन्न करना चाहते हैं, तो आप यह कर सकते हैं:
round(random.uniform(1,2), N)
दूसरा तर्क दशमलव की संख्या है।
सबसे अधिक, आप उपयोग करेंगे:
import random
random.uniform(a, b) # range [a, b) or [a, b] depending on floating-point rounding
यदि आपको ज़रूरत है तो पायथन अन्य वितरण प्रदान करता है।
यदि आपने पहले से numpyआयात किया है, तो आप इसके समकक्ष उपयोग कर सकते हैं:
import numpy as np
np.random.uniform(a, b) # range [a, b)
फिर, यदि आपको एक और वितरण की आवश्यकता है, तो numpyअजगर के समान वितरण प्रदान करता है, साथ ही साथ कई अतिरिक्त भी ।
np.random.uniform(start, stop)याnp.random.uniform(start, stop, samples)यदि आप कई नमूने चाहते थे। अन्यथा नीचे उत्तर सर्वश्रेष्ठ हैं।