பைத்தானில் சீரற்ற தசமங்கள் மற்றும் முழு எண்களை உருவாக்குகிறது, இதில் ரேண்டம்(), ரேண்ட்ரேஞ்ச்(), மற்றும் ராண்டிண்ட்()

வணிக

பைதான் தரநிலை நூலகத்தின் சீரற்ற தொகுதியில் ரேண்டம்(), சீருடை(), ரேண்டன்ஜ்(), மற்றும் ரேண்டிண்ட்() செயல்பாடுகளைப் பயன்படுத்தி சீரற்ற எண்களை உருவாக்கலாம்.

சீரற்ற தொகுதி நிலையான நூலகத்தில் சேர்க்கப்பட்டுள்ளது, எனவே கூடுதல் நிறுவல் தேவையில்லை. நிச்சயமாக, நீங்கள் அதை இறக்குமதி செய்ய வேண்டும்.

பின்வரும் தகவல்கள் இங்கே கொடுக்கப்பட்டுள்ளன.

  • random.random()(0.0 மற்றும் 1.0 இடையே மிதக்கும் புள்ளி எண்)
  • random.uniform()(மிதக்கும் புள்ளி எண்களின் எந்த வரம்பும்)
  • சாதாரண விநியோகம், காஸியன் பரவல் போன்றவற்றைப் பின்பற்றும் சீரற்ற எண்களை உருவாக்கவும்.
  • random.randrange()(தன்னிச்சையான வரம்பு மற்றும் படியின் முழு எண்)
  • random.randint()(எந்த வரம்பிலும் ஒரு முழு எண்)
  • சீரற்ற எண்களை உறுப்புகளாகக் கொண்ட பட்டியலை உருவாக்குதல்
    • சீரற்ற மிதக்கும் புள்ளி எண்களின் பட்டியல்
    • முழு எண் சீரற்ற எண்களின் பட்டியல்
  • சீரற்ற எண் ஜெனரேட்டரை துவக்கவும் (சீரற்ற எண் விதையை சரிசெய்யவும்)

பட்டியலின் கூறுகளை எவ்வாறு தோராயமாக பிரித்தெடுப்பது அல்லது வரிசைப்படுத்துவது என்பது பற்றிய பின்வரும் கட்டுரையைப் பார்க்கவும்.

random.random()(0.0 மற்றும் 1.0 இடையே மிதக்கும் புள்ளி எண்)

சீரற்ற தொகுதியின் செயல்பாடு random() ஆனது 0.0 மற்றும் 1.0 க்கு இடைப்பட்ட வகை மிதவையின் சீரற்ற மிதக்கும் புள்ளி எண்ணை உருவாக்குகிறது.

import random

print(random.random())
# 0.4496839011176701

random.uniform()(மிதக்கும் புள்ளி எண்களின் எந்த வரம்பும்)

uniform(a, b)இந்த சீரற்ற தொகுதியின் செயல்பாடுகள் பின்வரும் வரம்புகளில் ஏதேனும் மிதக்கும் புள்ளி எண் மிதவை வகையின் சீரற்ற எண்களை உருவாக்குகின்றன

  • a <= n <= b
  • b <= n <= a
import random

print(random.uniform(100, 200))
# 175.26585048238275

இரண்டு வாதங்களும் பெரியதாகவோ அல்லது சிறியதாகவோ இருக்கலாம்; அவை சமமாக இருந்தால், அவை இயற்கையாகவே அந்த மதிப்பை மட்டுமே திருப்பித் தரும். திரும்ப மதிப்பு எப்போதும் ஒரு மிதவை.

print(random.uniform(100, -100))
# -27.82338731501028

print(random.uniform(100, 100))
# 100.0

வாதத்தை மிதவை என்றும் குறிப்பிடலாம்.

print(random.uniform(1.234, 5.637))
# 2.606743596829249

b இன் மதிப்பு வரம்பில் சேர்க்கப்பட்டுள்ளதா என்பது ஆவணப்படுத்தப்பட்டபடி பின்வரும் ரவுண்டிங்கைப் பொறுத்தது.
a + (b-a) * random.random()

இறுதிப்புள்ளி மதிப்பு b வரம்பில் உள்ளதா இல்லையா என்பது பின்வரும் சமன்பாட்டில் உள்ள மிதக்கும் புள்ளியின் ரவுண்டிங்கைப் பொறுத்தது
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation

சாதாரண விநியோகம், காஸியன் பரவல் போன்றவற்றைப் பின்பற்றும் சீரற்ற எண்களை உருவாக்கவும்.

மேலே உள்ள சீரற்ற() மற்றும் சீரான() செயல்பாடுகள் ஒரே சீரற்ற எண்களை உருவாக்குகின்றன, ஆனால் பின்வரும் விநியோகத்தைப் பின்பற்றும் மிதக்கும் புள்ளி எண்களை உருவாக்கும் செயல்பாடுகளும் உள்ளன.

  • பீட்டா விநியோகம்:random.betavariate()
  • அதிவேக விநியோகம்:random.expovariate()
  • காமா விநியோகம்:random.gammavariate()
  • காஸியன் விநியோகம்:random.gauss()
  • lognormal விநியோகம்:random.lognormvariate()
  • சாதாரண விநியோகம்:random.normalvariate()
  • வான் மிசஸ் விநியோகம்:random.vonmisesvariate()
  • பரேட்டோ விநியோகம்:random.paretovariate()
  • வெய்புல் விநியோகம்:random.weibullvariate()

ஒவ்வொரு விநியோகத்தின் அளவுருக்கள் வாதங்களால் குறிப்பிடப்படுகின்றன. விவரங்களுக்கு அதிகாரப்பூர்வ ஆவணத்தைப் பார்க்கவும்.

random.randrange()(தன்னிச்சையான வரம்பு மற்றும் படியின் முழு எண்)

randrange(start, stop, step)
இந்த சீரற்ற தொகுதியின் செயல்பாடு பின்வரும் உறுப்புகளிலிருந்து தோராயமாக தேர்ந்தெடுக்கப்பட்ட உறுப்பை வழங்குகிறது.
range(start, stop, step)

வரம்பைப் போலவே (), வாதங்கள் தொடங்கும் மற்றும் படி தவிர்க்கப்படலாம். அவை தவிர்க்கப்பட்டால், தொடக்கம்=0 மற்றும் படி=1.

import random

print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(random.randrange(10))
# 5

வாதப் படியானது ஒரு சம அல்லது ஒற்றைப்படை சீரற்ற முழு எண்ணை அல்லது மூன்றின் பெருக்கமான ஒரு சீரற்ற முழு எண்ணை உருவாக்க அமைக்கலாம்.

எடுத்துக்காட்டாக, தொடக்கம் சமம் மற்றும் படி=2 எனில், வரம்பில் உள்ள முழு எண்களை மட்டுமே தோராயமாகப் பெற முடியும்.

print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]

print(random.randrange(10, 20, 2))
# 18

random.randint()(எந்த வரம்பிலும் ஒரு முழு எண்)

randint(a, b)
இந்த சீரற்ற தொகுதியின் செயல்பாடு பின்வரும் சீரற்ற முழு எண்ணை வழங்குகிறது.
a <= n <= b
randrange(a, b + 1)இதற்குச் சமமானது; b இன் மதிப்பும் வரம்பில் சேர்க்கப்பட்டுள்ளது என்பதை நினைவில் கொள்க.

print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74

சீரற்ற எண்களை உறுப்புகளாகக் கொண்ட பட்டியலை உருவாக்குதல்

இந்த பிரிவில், சீரற்ற எண்களை உறுப்புகளாகக் கொண்ட பட்டியலை உருவாக்க, நிலையான நூலகத்தின் சீரற்ற தொகுதியை எவ்வாறு பயன்படுத்துவது என்பதை விளக்குவோம்.

மிதக்கும் புள்ளி மிதவைகள் கொண்ட சீரற்ற எண்களின் பட்டியல்

ஃப்ளோட்டிங் பாயின்ட் ரேண்டம் எண்களைக் கொண்ட ஒரு பட்டியலை உருவாக்க, ரேண்டம்() மற்றும் யூனிஃபார்ம்() செயல்பாடுகளை பட்டியல் புரிதல் குறியீட்டுடன் இணைக்கவும்.

import random

print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]

மேலே உள்ள எடுத்துக்காட்டில், வரம்பு() பயன்படுத்தப்படுகிறது, ஆனால் விரும்பிய எண்ணிக்கையிலான உறுப்புகளுக்கு பட்டியல்கள் மற்றும் டூப்பிள்களும் சாத்தியமாகும். பட்டியல் புரிதல்கள் பற்றிய கூடுதல் விவரங்களுக்கு, பின்வரும் கட்டுரையைப் பார்க்கவும்.

முழு எண்ணாக சீரற்ற எண்களின் பட்டியல்

முழு எண் ரேண்டம் எண்கள் கொண்ட ஒரு பட்டியலை உருவாக்கும் போது, ​​மேலே உள்ள randange() மற்றும் randint()ஐ பட்டியல் புரிதல் குறிப்புடன் இணைப்பது நகல் மதிப்புகளை ஏற்படுத்தலாம்.

print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]

நகல் இல்லாமல் முழு எண்களின் சீரற்ற வரிசையை உருவாக்க விரும்பினால், random.sample() ஐப் பயன்படுத்தி தன்னிச்சையான வரம்புடன் வரம்பு() கூறுகளை பிரித்தெடுக்கவும்.

print(random.sample(range(10), k=5))
# [6, 4, 3, 7, 5]

print(random.sample(range(100, 200, 10), k=5))
# [130, 190, 140, 150, 170]

Random.sample() பற்றிய கூடுதல் தகவலுக்கு, பின்வரும் கட்டுரையைப் பார்க்கவும்.

சீரற்ற எண் ஜெனரேட்டரை துவக்கவும் (சீரற்ற எண் விதையை சரிசெய்யவும்)

ரேண்டம் மாட்யூலின் செயல்பாட்டு விதைக்கு தன்னிச்சையான முழு எண்ணைக் கொடுப்பதன் மூலம், சீரற்ற எண் விதையை சரிசெய்து, சீரற்ற எண் ஜெனரேட்டரை துவக்கலாம்.

ஒரே விதையுடன் துவக்கிய பிறகு, சீரற்ற மதிப்பு எப்போதும் அதே வழியில் உருவாக்கப்படும்.

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025
Copied title and URL