2012-03-16 9 views
38

मुझे एक जावास्क्रिप्ट स्क्रिप्ट चाहिए जो या तो वैल्यू 1 या वैल्यू 2 को यादृच्छिक रूप से चुनें, दो मानों के बीच नहीं, केवल वास्तविक मान।जावास्क्रिप्ट का उपयोग करके यादृच्छिक रूप से दो संख्याओं के बीच निर्णय कैसे लें?

धन्यवाद !!!!

उत्तर

69

Math.random[MDN] फ़ंक्शन अंतराल [0, 1) में एक यादृच्छिक मान चुनता है। आप मूल्य का चयन यादृच्छिक रूप से चुनने के लिए इसका लाभ उठा सकते हैं।

var chosenValue = Math.random() < 0.5 ? value1 : value2; 
+12

यह थोड़ा सा पैडेंटिक है, लेकिन यह '<' or '> =' होना चाहिए। अन्यथा, 'value1' थोड़ा अधिक संभावना होगी। ऐसा इसलिए है क्योंकि 'यादृच्छिक' एक संख्या तक वापस आता है लेकिन '1.0' सहित नहीं। – Jacob

+0

@ जैकोब मैं यह पता लगाने की कोशिश कर रहा था कि कौन सा तुलना ऑपरेटर उपयोग करना है; धन्यवाद। यह अभी तय है। –

26

Math.round(Math.random()) एक 0 या 1, प्रत्येक मान बस समय के बारे में आधे देता है।

आप इसे एक सही या गलत की तरह उपयोग कर सकते हैं, के सिर 'या' पूंछ ', या index- एक 2 सदस्य सरणी के रूप में

['true','false'][Math.round(Math.random())] वापस आ जाएगी' सही 'या' असत्य '...

2
parseInt(Math.random() * 2) ? true : false; 
+3

उत्तर के लिए अपने कोड को समझाते हुए कुछ प्रासंगिक जानकारी जोड़ना आम तौर पर अच्छा होता है –

4
~~(Math.random()*2) ? true : false 

यह 0 या 1 देता है। "~~" एक डबल bitwise नहीं ऑपरेटर है। मूल रूप से दशमलव भाग स्ट्रिप्स। कभी-कभी उपयोगी।

It is supposed to be faster then Math.floor()

सुनिश्चित नहीं हैं कि कितनी तेजी से यह एक पूरे के रूप है। मैंने इसे जिज्ञासा के लिए प्रस्तुत किया :)

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