मुझे मिली और इस्तेमाल की गई इस स्क्रिप्ट के बारे में मेरा एक प्रश्न है। यह काम करता है लेकिन मुझे नहीं पता क्यों। अभ्यास -50 से 50 तक यादृच्छिक संख्याओं के साथ एक सूची बनाने के लिए था। नीचे दिया गया फ़ंक्शन Math.floor(Math.random() * (वह भाग जो मुझे समझ में नहीं आता) का उपयोग करता है।

अगर मैं इस गणना को Google पर डालता हूं तो मुझे उत्तर 151 मिलता है और Math.random()*151 -50 से 50 तक नहीं करता है।

क्या कोई मुझे नीचे इस फ़ंक्शन के बारे में स्पष्ट स्पष्टीकरण दे सकता है क्योंकि मुझे यकीन है कि मुझे कुछ याद आ रहा है।

यह स्क्रिप्ट काम करती है लेकिन मैं केवल एक स्पष्ट स्पष्टीकरण चाहता हूं कि कैसे

for (i = 0; i <= 100; i++)
{
    Rnumber[i] = randomFromTo(-50,50);
}

function randomFromTo(from, to)
{
    return Math.floor(Math.random() * (to - from + 1) + from);
}
0
JochemQuery 2 जिंदा 2012, 21:47
मेरी खराब अंग्रेजी को सुधारने के लिए बॉबीएमसीआर को धन्यवाद।
 – 
JochemQuery
2 जिंदा 2012, 21:58

1 उत्तर

सबसे बढ़िया उत्तर
to - from + 1 = 50 - (-50) + 1 = 101
Math.random() * 101 = number in range [0,101[
Math.floor([0,101[) = integer in range [0,100]
[0,100] + from = [0,100] + (-50) = integer in range [-50,50]

वास्तव में यही पूछा जाता है।

9
Niet the Dark Absol 2 जिंदा 2012, 21:50
धन्यवाद!, मैं यही सलाह देता हूं
 – 
JochemQuery
2 जिंदा 2012, 21:54
त्वरित प्रश्न: क्या Math.random() कभी 1.0 लौटाता है? और यदि ऐसा है, तो इसका मतलब यह नहीं होगा कि ओपी के randomFromTo फ़ंक्शन से "51" को वापस करना संभव है?
 – 
selbie
3 जिंदा 2012, 01:02
नहीं, ऐसा नहीं है। इसमें 1.0 शामिल नहीं है।
 – 
Niet the Dark Absol
3 जिंदा 2012, 01:57