อัลกอริทึม (Algorithm) คืออะไร
อัลกอริทึม (Algorithm) คือ กระบวนการแก้ปัญหาอย่างมีลำดับและมีขั้นตอน เช่น เวลาเปิดร้านอาหาร จะมีลูกค้าเข้ามานั่งในร้านแล้วสั่งอาหาร แม่ค้าต้องเรียงตามลำดับของลูกค้าตามคิวที่เรียงมา หรือเรียงตามลำดับความยากง่ายในการปรุงอาหาร หากมีลูกค้าไม่กี่คน นี่คือ อัลกอริทึม ครับ
ในการสร้างอัลกอริทึม (Algorithm) ในภาษา Python สามารถทำได้แค่เพียงพิมพ์คำสั่งลงไป แต่หากต้องการสร้างแบบจำลองด้วย ผมขอแนะนำ algorithm.py
โมดูล algorithm.py เป็นโมดูลสำหรับใช้สร้างแบบจำลองอัลกอริทึมตามลำดับในฟังก์ชัน รองรับทั้ง Python 2 , Python 3 และใช้ MIT License
สามารถติดตั้งได้โดยใช้คำสั่ง pip:
$ pip install algorithm
ปัญหา องค์กรช่วยเหลือสังคมของอำเภอหนึ่ง มีสมาชิกอยู่ 560 คน คณะกรรมการตกลงกันว่าจะช่วยกันปรับปรุงสวนสาธารณะและพื้นที่สาธารณะต่าง ๆ ในอำเภอ โดยต้องการรับบริจาคเงินจากสมาชิกคนละ 42 บาท เพื่อนำมาเป็นค่าจ้างแรงงานและค่าก่อสร้างในการปรับปรุงสวนสาธารณะและพื้นที่สาธารณะ หากสมาชิกบริจาคเงินครบทุกคน องค์กรช่วยเหลือสังคมจะได้เงินเท่าไร
ปัญหานี้ถ้าแก้ตามหลักคณิตศาสตร์ สามารถนำเรื่องลำดับและอนุกรมมาแก้ไขปัญหาได้ดังนี้
ปัญหาที่ว่ามา เป็นลำดับเลขคณิต โดยมี
\[a_{1} = 42\]
\[a_{560} = 42\]
\[n = 560\]
\[d = 42 - 42 = 0\]
สามารถหาผลรวมเงินบริจาคทั้งหมดได้โดยใช้อนุกรมเลขคณิต
\[Sn= \frac{n}{2} (a_{1}+a_{n})\]
แทนค่า
\[S_{560} = \frac{560}{2} (42 + 42)\]
\[S_{560} = 280(84)\]
\[S_{560} = 23,520\]
เรามาเขียนโปรแกรมกันครับ
[python]
from algorithm import Algorithm
def a1():
return {'a1': 42}
def a560():
return {'a560': 42}
def n():
return {'n': 560}
def sum_all(a1,a560,n):
s560 = n/2 # ตัวแปร s560 นำ n/2 คือ 560/2
a = a1+a560 # ตัวแปร a นำ a1+a560 คือ 42 + 42
return {'sum': s560*a} # คืนค่าผลลัพธ์ sum โดยนำ s560 มาคูณกับ a
blah = Algorithm(a1, a560, n, sum_all)
#print(blah.functions) ถ้าต้องการแสดงฟังก์ชันทั้งหมดที่มี
getsum = blah.run()
print(getsum['sum'])
[/python]
ผลลัพธ์
23520.0
สรุป องค์กรช่วยเหลือสังคมได้รับเงินบริจาคทั้งหมด 23,520 บาท
จะเห็นได้ว่า
คณิตศาสตร์กับวิทยาศาสตร์ สำคัญมาก (และมากกว่า) ในการเรียนเขียนอัลกอริทึม ถ้าคุณได้คณิตศาสตร์กับวิทยาศาสตร์ คุณก็สามารถเขียนอัลกอริทึมได้เองอย่างเข้าใจและนำไปประยุกต์ได้
อ่านเอกสารเพิ่มเติมเกี่ยวกับโมดูล algorithm.py ได้ที่ https://algorithm-py.readthedocs.org/en/latest/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
0 ความคิดเห็น:
แสดงความคิดเห็น
แสดงความคิดเห็นได้ครับ :)