Python میں بے ترتیب اعشاریہ اور عدد کو پیدا کرنا، بشمول random(), randrange(), اور randint()

کاروبار

Python معیاری لائبریری کے بے ترتیب ماڈیول میں random(), uniform(), randange()، اور randint() فنکشنز کا استعمال کرتے ہوئے بے ترتیب نمبر بنائے جا سکتے ہیں۔

بے ترتیب ماڈیول معیاری لائبریری میں شامل ہے، لہذا کسی اضافی تنصیب کی ضرورت نہیں ہے۔ یقینا، آپ کو اسے درآمد کرنے کی ضرورت ہے۔

درج ذیل معلومات یہاں فراہم کی گئی ہیں۔

  • 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() اور uniform() فنکشنز یکساں طور پر تقسیم شدہ بے ترتیب نمبرز تیار کرتے ہیں، لیکن فلوٹنگ پوائنٹ نمبرز بنانے کے فنکشنز بھی ہیں جو درج ذیل تقسیم کی پیروی کرتے ہیں۔

  • بیٹا تقسیم:random.betavariate()
  • کفایتی تقسیم:random.expovariate()
  • گاما کی تقسیم:random.gammavariate()
  • گاؤشیائی تقسیم:random.gauss()
  • غیر معمولی تقسیم:random.lognormvariate()
  • عام تقسیم:random.normalvariate()
  • وان مسز کی تقسیم:random.vonmisesvariate()
  • پاریٹو کی تقسیم:random.paretovariate()
  • ویبل کی تقسیم:random.weibullvariate()

ہر ڈسٹری بیوشن کے پیرامیٹرز کو آرگیومینٹس کے ذریعے بیان کیا جاتا ہے۔ تفصیلات کے لیے سرکاری دستاویزات دیکھیں۔

random.randrange()(صوابدیدی حد اور قدم کا عدد)

randrange(start, stop, step)
اس بے ترتیب ماڈیول کا فنکشن مندرجہ ذیل عناصر میں سے بے ترتیب طور پر منتخب کردہ عنصر کو لوٹاتا ہے۔
range(start, stop, step)

جیسا کہ range() کے ساتھ، دلائل شروع اور قدم کو چھوڑا جا سکتا ہے۔ اگر ان کو چھوڑ دیا جائے تو start=0 اور step=1۔

import random

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

print(random.randrange(10))
# 5

استدلال کے مرحلے کو ایک یکساں یا طاق بے ترتیب عدد، یا ایک بے ترتیب عدد جو کہ تین کا ضرب ہو، بنانے کے لیے سیٹ کیا جا سکتا ہے۔

مثال کے طور پر، اگر آغاز برابر ہے اور step=2، رینج میں صرف عددی اعداد تصادفی طور پر حاصل کیے جا سکتے ہیں۔

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

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

random.randint()(کسی بھی رینج میں ایک عدد)

randint(a, b)
اس رینڈم ماڈیول کا فنکشن درج ذیل رینڈم انٹیجر int واپس کرتا ہے۔
a <= n <= b
randrange(a, b + 1)اس کے برابر؛ نوٹ کریں کہ b کی قدر بھی رینج میں شامل ہے۔

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

عناصر کے طور پر بے ترتیب نمبروں کے ساتھ ایک فہرست تیار کرنا

اس حصے میں، ہم وضاحت کریں گے کہ معیاری لائبریری کے بے ترتیب ماڈیول کو عناصر کے طور پر بے ترتیب نمبروں کے ساتھ فہرست بنانے کے لیے کیسے استعمال کیا جائے۔

فلوٹنگ پوائنٹ فلوٹس کے ساتھ بے ترتیب نمبروں کی فہرست

ایک فہرست بنانے کے لیے جس کے عناصر فلوٹنگ پوائنٹ رینڈم نمبرز ہیں، random() اور uniform() فنکشنز کو فہرست کی سمجھ بوجھ کے ساتھ ملا دیں۔

import random

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

مندرجہ بالا مثال میں، range() استعمال کیا جاتا ہے، لیکن فہرستیں اور tuples بھی عناصر کی مطلوبہ تعداد کے لیے ممکن ہیں۔ فہرست کی تفہیم کے بارے میں مزید تفصیلات کے لیے، براہ کرم درج ذیل مضمون کا حوالہ دیں۔

انٹیجر int بے ترتیب نمبروں کی فہرست

ایک فہرست تیار کرتے وقت جس کے عناصر انٹیجر رینڈم نمبرز ہیں، مندرجہ بالا randange() اور randint() کو فہرست کی سمجھ کے اشارے کے ساتھ ملانے کے نتیجے میں ڈپلیکیٹ قدریں نکل سکتی ہیں۔

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

اگر آپ بغیر نقل کے عدد کی بے ترتیب ترتیب بنانا چاہتے ہیں تو random.sample() کا استعمال کرتے ہوئے صوابدیدی رینج کے ساتھ range() کے عناصر کو نکالیں۔

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