25 มีนาคม 2558

Published มีนาคม 25, 2558 by with 1 comment

การสุ่มใน Python

ภาษา Python รองรับการสุ่มมาในตัว สามารถเรียกใช้งานการสุ่มใน Python ได้ด้วยการเรียกใช้งานไลบรารี random บทความนี้จะพาผู้อ่านไปเรียนรู่การสุ่มใน Python กันครับ :D


สุ่มจำนวนเต็ม
สามารถสุ่มจำนวนเต็มได้โดยมีลักษณะดังนี้

random.randint(a, b)

a แทน จำนวนเต็มจำนวนแรกของการสุ่ม
b แทน จำนวนเต็มจำนวนสุดท้ายของการสุ่ม

จะเขียนเป็นช่วงทางคณิตศาสตร์ได้ดังนี้
(a,b)

ตัวอย่างการใช้งาน
>>> import random
>>> random.randint(0, 100)
5

สุ่มจำนวนจริง แบบที่ 1
เป็นการสุ่มจำนวนจริงโดยมีเลขทศนิยมประกอบด้วย มีลักษณะการใช้งานดังนี้

random.random()

จะสุ่มในช่วง [0.0, 1.0)

ตัวอย่างการใช้งาน
>>> import random
>>> random.random()
0.28650879462360856
>>> random.random()
0.037645435879774314

สุ่มจำนวนจริง แบบที่ 2
เป็นการสุ่มจำนวนจริงโดยมีเลขทศนิยมประกอบด้วย มีลักษณะการใช้งานดังนี้

random.uniform(a, b)

a คือ จำนวนเริ่มต้น
b คือ จำนวนสุดท้าย
จะสุ่มในช่วง [a,b)
ตัวอย่างการใช้งาน
>>> import random
>>> random.uniform(1, 10) # จะสุ่มจำนวนจริง x โดยที่ 1.0 <= x < 10.0
1.1800146073117523

สุ่มแบบเลือก
การสุ่มแบบเลือก เราสามารถกำหนดรายการให้ Python ทำการสุ่มจากค่าที่เรากำหนดได้โดยจะเป็นตัวอักษร หรือ List มีลักษณะการใช้งานดังนี้

random.choice(ค่าที่กำหนด)

หากต้องการสุ่มตัวอักษรสามารถใส่ค่าลงไป เช่น

random.choice('abcdefghij')

หากต้องการสุ่มชื่อ หรือ รายการต่าง ๆ ให้ใช้ List เช่น

random.choice(['Boy', 'Cat', 'Ton', 'Pop', 'You'])

ตัวอย่างการใช้งาน
>>> import random
>>> random.choice('abcdefghij')
'c'
>>> random.choice([11, 22, 33, 55, 44])
11
>>> random.choice(['Boy', 'Cat', 'Ton', 'Pop', 'You'])
'Ton'


สุ่มสับเปลี่ยนตำแหน่ง
เราสามารถทำได้การสุ่มสับเปลี่ยนตำแหน่งกับ List ใน Python ได้โดยมีลักษณะการใช้งานดังนี้

random.shuffle(List)

ตัวอย่างการใช้งาน
>>> import random
>>> items = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(items)
>>> items
[7, 3, 2, 5, 6, 4, 1]

สุ่มลำดับจำนวนตัวเลข
เราสามารถทำการสุ่มลำดับจำนวนตัวเลข ใน Python ได้โดยมีลักษณะการใช้งานดังนี้

random.randrange(เริ่ม,จบ[, การเพิ่มขึ้น})

ดูเพิ่มเติม https://python3.wannaphong.com/2014/08/การใช้งาน-range-ใน-python.html

ตัวอย่างการใช้งาน
>>> import random
>>> random.randrange(10)
>>> random.randrange(0, 101, 2)
26

สุ่มแบบการแจกแจงปรกติ
เราสามารถทำการสุ่มนี้ได้โดยมีลักษณะดังนี้

random.normalvariate(mu, sigma)

เป็นการสุ่มแบบการแจกแจงปรกติ โดย mu เป็นค่าเฉลี่ย และ sigma เป็นส่วนเบี่ยงเบนมาตรฐาน
หรือจะใช้คำสั่ง

random.gauss(mu, sigma)

โดยคำสั่ง random.gauss จะเร็วกว่า random.normalvariate เล็กน้อย

ตัวอย่างการใช้งาน
>>> import random
>>> import math
>>> my_mean = 0
>>> my_variance = 10
>>> random_numbers = [random.gauss(my_mean, math.sqrt(my_variance)) for i in range(100)]
>>> print(random_numbers)
[-0.6658543305518967, 0.6889294773214457, 4.6094503002405744, -3.104325255983213, -2.704747577492553, 3.7023868816862824,...

ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

1 ความคิดเห็น:

แสดงความคิดเห็นได้ครับ :)