ट्रैक
/
Go
Go
/
सिलेबस
/
यादृच्छिकता
या

यादृच्छिकता में Go

2 अभ्यास

यादृच्छिकता के बारे में

पैकेज math/rand स्यूडो-रैंडम संख्याएँ बनाने में मदद करता है।

0 से 99 के बीच एक रैंडम पूर्णांक बनाने का तरीका यह है:

import "math/rand"

n := rand.Intn(100) // n is a random int, 0 <= n < 100

फंक्शन rand.Float64 0.0 से 1.0 के बीच एक रैंडम फ्लोटिंग पॉइंट संख्या लौटाता है:

f := rand.Float64() // f is a random float64, 0.0 <= f < 1.0

स्लाइस (या दूसरे डेटा स्ट्रक्चर) को शफल करने की सुविधा भी है:

x := []string{"a", "b", "c", "d", "e"}
// shuffling the slice put its elements into a random order
rand.Shuffle(len(x), func(i, j int) {
	x[i], x[j] = x[j], x[i]
})

सीड

पैकेज math/rand से बनने वाले संख्याओं के क्रम वास्तव में रैंडम नहीं होते। अगर सीड की कोई एक वैल्यू तय कर दी जाए, तो नतीजे हर बार बिल्कुल एक जैसे ही आते हैं।

Go 1.20 और उसके बाद के वर्शन में सीड अपने आप रैंडम तरीके से चुना जाता है, इसलिए प्रोग्राम चलाने पर हर बार आपको रैंडम संख्याओं का अलग क्रम दिखेगा।

Go के पुराने वर्शन में सीड डिफॉल्ट रूप से 1 होता था। इसलिए प्रोग्राम को अलग-अलग बार चलाने पर अलग क्रम पाने के लिए, कोई भी रैंडम संख्या लेने से पहले रैंडम संख्या जनरेटर को खुद सीड करना पड़ता था, जैसे मौजूदा समय से।

rand.Seed(time.Now().UnixNano())
GitHub के ज़रिए संपादित करें यह लिंक नई विंडो या टैब में खुलता है।

यादृच्छिकता सीखिए

अभ्यास लॉक है

यादृच्छिकता पर अभ्यास करने के लिए 2 और अभ्यास अनलॉक कीजिए