2012-10-06 21 views
7

मैं min_time और m_time के बीच 1 दशमलव बिंदु के साथ एक यादृच्छिक संख्या उत्पन्न करना चाहते हैं, 0.3पायथन में 2 संख्या के बीच दिए गए दशमलव बिंदु की यादृच्छिक संख्या कैसे उत्पन्न करें?

अब जैसे मैं एक बहुत मोड़ समाधान

m_time = 0.5 
min_time = 0.2 
float(randint(int(min_time * 10), int(m_time * 10)))/10 

यह काम करता है है, लेकिन अगर वहाँ एक मैं सोच रहा हूँ बेहतर समाधान?

उत्तर

7

मैं की तरह अपनी सीमा से संबंधित लगता है कि पसंदीदा तरीका uniformlymin_time औरके बीच एक फ़्लोटिंग नंबर चुनें 10 और उसके बाद अंतर्निहित round फ़ंक्शन (पहले दशमलव स्थान पर) का उपयोग करें:

round(random.uniform(min_time, max_time), 1) 
+0

मैं इस सरल समाधान के बारे में कैसे सोच सकता हूं? धन्यवाद! – mko

2

मुझे लगता है कि आपके पास क्या है ठीक है। यद्यपि आप भी है जैसे कि यह लिख सकता है इस

0.1*randint(int(min_time * 10), int(m_time * 10)) 

अन्य स्पष्ट विकल्प

round(random.random()*(m_time-min_time)+min_time, 1) 
6
import decimal 
import random 

है - मैं और जे 2 और 3

decimal.Decimal('%d.%d' % (random.randint(0,i),random.randint(0,j))) 
संबंधित मुद्दे

 संबंधित मुद्दे