บทความนี้เป็นตัวอย่างโปรแกรมภาษาไพธอนเพื่อคำนวณหาร้อยละของการเกิดของด้านหัวหรือก้อยของการโยนเหรียญที่มี 2 ด้านจำนวน n ครั้ง
สิ่งที่ต้องทราบ
- การรับค่าในไพธอน
- การแปลงประเภทของข้อมูล
- การสุ่มค่า
- การหาร้อยละ
การรับค่าในไพธอน
คำสั่งสำหรับการรับค่าในภาษาไพธอนเป็นดังนี้
ตัวแปร = input( msg )
โดย ตัวแปร เป็นหน่วยความจำที่เราตั้งชื่อไว้แทนตำแหน่งที่จัดเก็บในหน่วยความจำ และ msg คือ ข้อความที่ให้แสดงบนจอแสดงผลก่อนปรากฏเครื่องหมายพร็อมท์ (prompt) สำหรับรับข้อมูล ดังนั้น ถ้าต้องการรับข้อมูลไปเก็บในตัวแปร n สามารถเขียนโค้ดได้ดังนี้
n = input( “จำนวนครั้งการสุ่ม?”)
การแปลงประเภทของข้อมูล
อย่างไรก็ดี ค่าที่ได้จาก input() นั้นเป็นข้อมูลประเภท string ดังนั้น ต้องแปลงค่าให้เป็น จำนวนเต็มหรือทศนิยมด้วยการแปลงด้วย int( ) หรือ float( ) จึงได้ชุดคำสั่งเป็นดังนี้
n = int( input( “จำนวนครั้งการสุ่ม?” ))
หรือ
n = float( input( “จำนวนครั้งการสุ่ม?” ))
ถึงแม้เราแปลงข้อมูลเป็นตัวเลข แต่กรณีที่ข้อมูลนำเข้าเป็นข้อความที่ไม่ใช่ตัวเลข จะส่งผลให้โปรแกรมทำงานผิดพลาดและทำงานต่อไปไม่ได้ ดังนั้น การเขียนโปรแกรมจึงต้องทำการดักข้อผิดพลาดที่อาจจะเกิดขึ้นได้ด้วย try/except ดังนี้
try:
n = int( input( "จำนวนครั้งการสุ่ม?" ))
except:
print("กรุณาป้อนตัวเลขจำนวนเต็ม")
การสุ่มค่า
การสุ่มค่าด้วยภาษาไพธอนใช้คำสั่ง random() จากไลบรารี random ดังนั้น ตัวอย่างการสุ่มค่าคือ
import random
ค่าที่สุ่มได้ = random.random()
ค่าที่สุ่มได้เป็นจำนวนทศนิยมในช่วง 0 ถึง 1 ดังนั้นถ้าต้องการให้การสุ่มเป็นการสุ่มค่าระหว่าง 0 หรือ 1 ซึ่งเป็นค่าจำนวนเต็มสามารถเขียนเป็นฟังก์ชันได้ดังนี้
def randCoin():
return int(random.random()*2)
ดังนั้น การตรวจสอบว่าถ้าสุ่ม n ครั้งเกิดหัวหรือก้อยเป็นจำนวนเท่าไรเขียนโค้ดได้ประมาณนี้
import random
numH = 0
numT = 0
n = 4
for counter in range(n):
if (randCoin() == 0):
numH += 1
else:
numT += 1
print("H:{}, T:{}".format(numH, numT))
การหาร้อยละ
วิธีการคำนวณร้อยละของ m จาก n กระทำโดยการนำค่า m หารด้วย n และนำผลลัพธ์ไปคูณด้วย 100 เป็น ดังนี้
ร้อยละ = m/n*100
ดังนั้น ฟังก์ชันของการแปลงจึงเขียนได้ดังนี้
sub calcPercentage(m, n):
return (100.0*(m/n))
ตัวอย่างโปรแกรม
ตัวอย่างโปรแกรม code22-1 เป็นการแสดงร้อยละของการเกิดหัวและก้อยจากการโยนเหรียญ 1 เหรียญ จำนวน n ครั้ง
#code22-1
import random
def randCoin():
return int(random.random()*2)
def calcPercentage(m, n):
if n == 0:
return 0
return (100.0*(m/n))
numH = 0
numT = 0
try:
n = int(input("จำนวนครั้งการสุ่ม?"))
for counter in range(n):
if (randCoin()==0):
numH += 1
else:
numT += 1
print("H={}%, T={}%".format(
calcPercentage(numH),
calcPercentage(numT)))
except:
print("กรุณากรอกจำนวนครั้งเป็นตัวเลขจำนวนเต็ม")
สรุป
จากบทความนี้เราได้เรียนรู้วิธีการรับข้อมูล วิธีการแปลงข้อมูลสตริงให้เป็นตัวเลข การดักข้อผิดพลาด การสุ่ม การสุ่มในช่วงค่าที่ต้องการ และการหาค่าร้อยละ ซึ่งเป็นพื้นฐานสำหรับการนำไปใช้ต่อไป
สุดท้ายนี้ขอให้สนุกกับการเขียนโปรแกรมครับ
(C) 2020, โดย อ.ดนัย เจษฎาฐิติกุล/อ.จารุต บุศราทิจ
ปรับปรุงเมื่อ 2020-11-26
ปรับปรุงเมื่อ 2021-08-25