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)
यदि आप कई नमूने चाहते थे। अन्यथा नीचे उत्तर सर्वश्रेष्ठ हैं।