के बीच एक सीमा में यादृच्छिक फ्लोट को सर्वश्रेष्ठ तरीके से कैसे बनाया जाए, मुझे पता है कि मैं रैंड (अधिकतम) के साथ यादृच्छिक फ्लोट उत्पन्न कर सकता हूं। मैंने एक सीमा में एक फ्लोट उत्पन्न करने की कोशिश की, यह मुश्किल नहीं होना चाहिए। लेकिन उदाहरण रैंड (1.4512) 0 लौटाता है, इस प्रकार रैंड फ्लोट के साथ गणना नहीं कर रहा है। अब मैंने थोड़ी सी चाल की कोशिश की, चीज़ को एक पूर्णांक में परिवर्तित कर दिया और मेरी वांछित सीमा में एक फिटिंग नंबर को यादृच्छिक बनाने के बाद, इसे वापस एक फ्लोट पर गणना कर रहा है .. जो काम नहीं कर रहा है।दो फ्लोट्स
मेरा प्रश्न यह है कि इसे बेहतर तरीके से कैसे करें। यदि कोई बेहतर तरीका नहीं है, तो यह क्यों काम नहीं कर रहा है? (शायद यह मेरे लिए बहुत देर हो चुकी है, मुझे 2 घंटे पहले सोना शुरू करना चाहिए था ..)। पूरी बात का उद्देश्य डाटाबेस रिकॉर्ड्स के लिए "स्थिति" फ़ील्ड की गणना करने के लिए एक तरीका होना है ताकि उपयोगकर्ता उन्हें मैन्युअल रूप से ऑर्डर कर सकें। मैंने पहले ऐसा कुछ नहीं किया है, शायद कोई मुझे बेहतर समाधान के साथ संकेत दे सकता है।
यहाँ अब तक कोड है:
def calculate_position(@elements, index)
min = @elements[index].position
if @elements[index + 1].nil?
pos = min + 1
else
pos = min + (rand(@elements[index + 1].position * 10000000000)/10000000000)
end
return pos
end
धन्यवाद!
(रूबी 2.1 के साथ परीक्षण किया गया) नीचे दिए गए उत्तर अस्वीकार्य हैं, तो आप कृपया समस्या को स्पष्ट कर सकता है? – Josh
सभी को उनके उत्तरों के लिए धन्यवाद, साफ और अच्छी तरह से समझाया – pduersteler
@ sandor_bedo का जवाब शायद यहां सबसे अच्छा है: 'रैंड (-34.0..53।8) ' – Automatico