random ಮೊಡ್ಯೂಲ್
ಪೈಥಾನ್ನ random ಮೊಡ್ಯೂಲ್, ಯಾದೃಚ್ಛಿಕ (random) ಸಂಖ್ಯೆಗಳನ್ನು ರಚಿಸಲು, ಸೀಕ್ವೆನ್ಸ್ಗಳಿಂದ ಯಾದೃಚ್ಛಿಕ ಐಟಂಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು, ಮತ್ತು ಸೀಕ್ವೆನ್ಸ್ಗಳನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಕಲೆಸಲು (shuffle) ಫಂಕ್ಷನ್ಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ.
ಇದನ್ನು ಸಿಮ್ಯುಲೇಶನ್ಗಳು, ಆಟಗಳು, ಯಾದೃಚ್ಛಿಕ ಮಾದರಿ (random sampling), ಮತ್ತು ಕ್ರಿಪ್ಟೋಗ್ರಫಿಯಂತಹ ಹಲವು ಕ್ಷೇತ್ರಗಳಲ್ಲಿ ಬಳಸಲಾಗುತ್ತದೆ.
ಪ್ರಮುಖ random ಫಂಕ್ಷನ್ಗಳು
1. ಪೂರ್ಣಾಂಕಗಳನ್ನು ರಚಿಸುವುದು
random.randint(a, b):aಮತ್ತುbನಡುವೆ (ಎರಡನ್ನೂ ಒಳಗೊಂಡಂತೆ) ಒಂದು ಯಾದೃಚ್ಛಿಕ ಪೂರ್ಣಾಂಕವನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.random.randrange(start, stop[, step]):range(start, stop, step)ನಿಂದ ಒಂದು ಯಾದೃಚ್ಛಿಕ ಐಟಂ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
# 1 ರಿಂದ 6ರ ನಡುವೆ ಒಂದು ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ (ದಾಳ ಉರುಳಿಸಿದಂತೆ)
dice_roll = random.randint(1, 6)
print(f"ದಾಳದ ಸಂಖ್ಯೆ: {dice_roll}")
# 0 ರಿಂದ 10ರ ನಡುವೆ ಒಂದು ಸಮ ಸಂಖ್ಯೆ
even_number = random.randrange(0, 11, 2)
print(f"ಯಾದೃಚ್ಛಿಕ ಸಮ ಸಂಖ್ಯೆ: {even_number}")
2. ಫ್ಲೋಟಿಂಗ್-ಪಾಯಿಂಟ್ ಸಂಖ್ಯೆಗಳನ್ನು ರಚಿಸುವುದು
random.random(): 0.0 ಮತ್ತು 1.0 ನಡುವೆ (0.0 ಸೇರಿದೆ, 1.0 ಸೇರಿಲ್ಲ) ಒಂದು ಯಾದೃಚ್ಛಿಕ ಫ್ಲೋಟ್ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.random.uniform(a, b):aಮತ್ತುbನಡುವೆ ಒಂದು ಯಾದೃಚ್ಛಿಕ ಫ್ಲೋಟ್ ಸಂಖ್ಯೆಯನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
# 0.0 ಮತ್ತು 1.0 ನಡುವಿನ ಸಂಖ್ಯೆ
rand_float = random.random()
print(f"ಯಾದೃಚ್ಛಿಕ ಫ್ಲೋಟ್: {rand_float}")
# 10.5 ಮತ್ತು 20.5 ನಡುವಿನ ಸಂಖ್ಯೆ
rand_uniform = random.uniform(10.5, 20.5)
print(f"ಯೂನಿಫಾರ್ಮ್ ಯಾದೃಚಿಕ ಫ್ಲೋಟ್: {rand_uniform}")
3. ಸೀಕ್ವೆನ್ಸ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವುದು
random.choice(sequence): ಖಾಲಿಯಲ್ಲದ ಸೀಕ್ವೆನ್ಸ್ನಿಂದ (ಲಿಸ್ಟ್, ಟ್ಯೂಪಲ್, ಸ್ಟ್ರಿಂಗ್) ಒಂದು ಯಾದೃಚ್ಛಿಕ ಐಟಂ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.random.choices(sequence, k=1): ಸೀಕ್ವೆನ್ಸ್ನಿಂದkಗಾತ್ರದ, ಪುನರಾವರ್ತನೆಗೆ ಅವಕಾಶವಿರುವ (with replacement) ಯಾದೃಚ್ಛಿಕ ಐಟಂಗಳ ಲಿಸ್ಟ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.random.sample(population, k):populationನಿಂದkಗಾತ್ರದ, ಪುನರಾವರ್ತನೆ ಇಲ್ಲದ (without replacement) ಅನನ್ಯ ಐಟಂಗಳ ಲಿಸ್ಟ್ ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.random.shuffle(sequence): ಸೀಕ್ವೆನ್ಸ್ನ ಐಟಂಗಳನ್ನು ಯಾದೃಚ್ಛಿಕವಾಗಿ ಕಲೆಸುತ್ತದೆ (in-place).
names = ["ರವಿಕಿರಣ", "ನಿಶ್ಕಲಾ", "ಗೋವರ್ಧನ್", "ಮಹಾಲಕ್ಷ್ಮಿ"]
# ಒಬ್ಬ ವಿಜೇತರನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು
winner = random.choice(names)
print(f"ವಿಜೇತರು: {winner}")
# ಇಬ್ಬರು ಲಕ್ಕಿ ಡ್ರಾ ವಿಜೇತರನ್ನು ಆಯ್ಕೆ ಮಾಡುವುದು (ಅನನ್ಯ)
lucky_winners = random.sample(names, k=2)
print(f"ಲಕ್ಕಿ ಡ್ರಾ ವಿಜೇತರು: {lucky_winners}")
# ಕಾರ್ಡ್ಗಳನ್ನು ಕಲೆಸಿದಂತೆ ಲಿಸ್ಟ್ ಅನ್ನು ಷಫಲ್ ಮಾಡುವುದು
print(f"ಷಫಲ್ ಮಾಡುವ ಮೊದಲು: {names}")
random.shuffle(names)
print(f"ಷಫಲ್ ಮಾಡಿದ ನಂತರ: {names}")
ಬೀಜವನ್ನು ಸ್ಥಾಪಿಸುವುದು (Seeding)
random.seed(a) ಫಂಕ್ಷನ್, ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆ ಜನರೇಟರ್ ಅನ್ನು ಒಂದು ನಿರ್ದಿಷ್ಟ ಸ್ಥಿತಿಗೆ ಇನಿಶಿಯಲೈಸ್ ಮಾಡುತ್ತದೆ. ಒಂದೇ ಬೀಜವನ್ನು (seed) ಬಳಸಿದಾಗ, ಪ್ರತಿ ಬಾರಿಯೂ ಒಂದೇ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಗಳ ಅನುಕ್ರಮವು ಉತ್ಪತ್ತಿಯಾಗುತ್ತದೆ. ಇದು ಫಲಿತಾಂಶಗಳನ್ನು ಪುನರುತ್ಪಾದಿಸಲು (reproduce) ಮತ್ತು ಡೀಬಗ್ ಮಾಡಲು ಉಪಯುಕ್ತ.
random.seed(42)
print(random.random()) # ಯಾವಾಗಲೂ ಒಂದೇ ಮೌಲ್ಯವನ್ನು ನೀಡುತ್ತದೆ
print(random.randint(1, 10)) # ಯಾವಾಗಲೂ ಒಂದೇ ಮೌಲ್ಯವನ್ನು ನೀಡುತ್ತದೆ
random.seed(42)
print(random.random()) # ಮತ್ತೆ ಅದೇ ಮೌಲ್ಯ
print(random.randint(1, 10)) # ಮತ್ತೆ ಅದೇ ಮೌಲ್ಯ
random ಮೊಡ್ಯೂಲ್, ಸಿಮ್ಯುಲೇಶನ್ಗಳಿಂದ ಹಿಡಿದು ಡೇಟಾ ವಿಜ್ಞಾನದವರೆಗೆ ಅನೇಕ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಪ್ರಮುಖ ಪಾತ್ರ ವಹಿಸುತ್ತದೆ.