ការបង្កើតទសភាគចៃដន្យ និងចំនួនគត់ក្នុង Python រួមទាំង random(), randrange() និង randint()

អាជីវកម្ម

លេខចៃដន្យអាចត្រូវបានបង្កើតដោយប្រើមុខងារ random(), uniform(), randange() និង randint() នៅក្នុងម៉ូឌុលចៃដន្យនៃបណ្ណាល័យស្តង់ដារ Python ។

ម៉ូឌុលចៃដន្យត្រូវបានរួមបញ្ចូលនៅក្នុងបណ្ណាល័យស្តង់ដារ ដូច្នេះមិនតម្រូវឱ្យមានការដំឡើងបន្ថែមទេ។ ជាការពិតណាស់អ្នកត្រូវនាំចូលវា។

ព័ត៌មានខាងក្រោមត្រូវបានផ្តល់ជូននៅទីនេះ។

  • random.random()(លេខចំណុចអណ្តែតរវាង 0.0 និង 1.0)
  • random.uniform()(ជួរណាមួយនៃលេខចំណុចអណ្តែត)
  • បង្កើតលេខចៃដន្យដែលធ្វើតាមការចែកចាយធម្មតា ការចែកចាយ Gaussian ។ល។
  • 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

បង្កើតលេខចៃដន្យដែលធ្វើតាមការចែកចាយធម្មតា ការចែកចាយ Gaussian ។ល។

អនុគមន៍ random() និង uniform() ខាងលើបង្កើតលេខចៃដន្យចែកចាយស្មើៗគ្នា ប៉ុន្តែក៏មានមុខងារដើម្បីបង្កើតលេខចំនុចអណ្តែតទឹក ដែលធ្វើតាមការចែកចាយខាងក្រោម។

  • ការចែកចាយបេតា:random.betavariate()
  • ការចែកចាយអិចស្ប៉ូណង់ស្យែល:random.expovariate()
  • ការចែកចាយហ្គាម៉ា:random.gammavariate()
  • ការចែកចាយ Gaussian:random.gauss()
  • ការចែកចាយឡូជីខល:random.lognormvariate()
  • ការចែកចាយធម្មតា។:random.normalvariate()
  • វ៉ុន មីស ចែកចាយ:random.vonmisesvariate()
  • ការចែកចាយ Pareto:random.paretovariate()
  • ការចែកចាយ Weibull:random.weibullvariate()

ប៉ារ៉ាម៉ែត្រនៃការចែកចាយនីមួយៗត្រូវបានបញ្ជាក់ដោយអាគុយម៉ង់។ សូមមើលឯកសារផ្លូវការសម្រាប់ព័ត៌មានលម្អិត។

random.randrange()(ចំនួនគត់នៃជួរបំពាន និងជំហាន)

randrange(start, stop, step)
មុខងារនៃម៉ូឌុលចៃដន្យនេះត្រឡប់ធាតុដែលបានជ្រើសរើសដោយចៃដន្យពីធាតុខាងក្រោម។
range(start, stop, step)

ដូចនឹង range() អាគុយម៉ង់ចាប់ផ្តើម និងជំហានអាចត្រូវបានលុបចោល។ ប្រសិនបើពួកគេត្រូវបានលុបចោល ចាប់ផ្តើម=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)
មុខងារនៃម៉ូឌុលចៃដន្យនេះត្រឡប់ចំនួន int ចៃដន្យខាងក្រោម។
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]

ក្នុងឧទាហរណ៍ខាងលើ range() ត្រូវបានប្រើ ប៉ុន្តែបញ្ជី និង tuples ក៏អាចធ្វើទៅបានសម្រាប់ចំនួនធាតុដែលចង់បាន។ សម្រាប់ព័ត៌មានលម្អិតបន្ថែមអំពីការយល់ដឹងក្នុងបញ្ជី សូមមើលអត្ថបទខាងក្រោម។

បញ្ជីនៃចំនួនគត់ int ចៃដន្យ

នៅពេលបង្កើតបញ្ជីធាតុដែលមានចំនួនគត់ចៃដន្យ ការរួមបញ្ចូលគ្នារវាង randange() និង randint() ខាងលើជាមួយនឹងសញ្ញាសម្គាល់នៃបញ្ជីអាចបណ្តាលឱ្យមានតម្លៃស្ទួន។

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

ប្រសិនបើអ្នកចង់បង្កើតលំដាប់ចៃដន្យនៃចំនួនគត់ដោយគ្មានការចម្លង ទាញយកធាតុនៃ range() ជាមួយនឹងជួរតាមអំពើចិត្តដោយប្រើ 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