25 มีนาคม 2558

Published 3/25/2558 by with 0 comment

การสุ่มใน Python

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

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

[python]random.randint(a, b)[/python]

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

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

ตัวอย่างการใช้งาน

[python]
>>> import random
>>> random.randint(0, 100)
5
[/python]

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

[python]random.random()[/python]

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

ตัวอย่างการใช้งาน

[python]
>>> import random
>>> random.random()
0.28650879462360856
>>> random.random()
0.037645435879774314
[/python]

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

[python]random.uniform(a, b)[/python]

a คือ จำนวนเริ่มต้น
b คือ จำนวนสุดท้าย
จะสุ่มในช่วง [a,b)
ตัวอย่างการใช้งาน

[python]
>>> import random
>>> random.uniform(1, 10) # จะสุ่มจำนวนจริง x โดยที่ 1.0 <= x < 10.0
1.1800146073117523
[/python]

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

[python]random.choice(ค่าที่กำหนด)[/python]

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

[python]random.choice('abcdefghij')[/python]

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

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

ตัวอย่างการใช้งาน

[python]
>>> import random
>>> random.choice('abcdefghij')
'c'
>>> random.choice([11, 22, 33, 55, 44])
11
>>> random.choice(['Boy', 'Cat', 'Ton', 'Pop', 'You'])
'Ton'
[/python]

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

[python]random.shuffle(List)[/python]

ตัวอย่างการใช้งาน

[python]
>>> import random
>>> items = [1, 2, 3, 4, 5, 6, 7]
>>> random.shuffle(items)
>>> items
[7, 3, 2, 5, 6, 4, 1]
[/python]

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

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

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

ตัวอย่างการใช้งาน

[python]
>>> import random
>>> random.randrange(10)
>>> random.randrange(0, 101, 2)
26
[/python]

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

[python]random.normalvariate(mu, sigma)[/python]

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

[python]random.gauss(mu, sigma)[/python]

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

ตัวอย่างการใช้งาน

[python]
>>> 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,...
[/python]

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

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

แสดงความคิดเห็น

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