Skip to main content
0

สารจากผู้เขียน

วันนี้เราจะพาทุกคนมาดูกันว่าพื้นฐานที่สำคัญของคณิตศาสตร์ไม่ต่อเนื่อง (Discrete Math) สำหรับสาย Programming นั้นมีเรื่องอะไรที่ควรเรียนรู้บ้าง

เขียนโดย
Papatsiri Apipaiboon
Internship @ borntoDev

บทความนี้ตีพิมพ์ และ เผยแพร่เมื่อ 30 สิงหาคม 2566

Discrete mathematics คือ

คณิตศาสตร์ไม่ต่อเนื่อง หรือบางครั้งเรียกว่าคณิตศาสตร์จำกัด เป็นการศึกษาโครงสร้างทางคณิตศาสตร์ซึ่งมีลักษณะเป็นค่าเฉพาะเจาะจง และไม่ต่อเนื่อง เป็นพื้นฐานสำคัญในการพัฒนาและวิเคราะห์อัลกอริทึม การออกแบบโครงสร้างข้อมูล การเขียนโปรแกรม และอื่น ๆ อีกมากมาย ส่วนพื้นฐานที่ควรรู้มีอะไรบ้าง และใช้งานในสายคอมยังไง ไปดูกันเลย !!!

1. เซต

เซต คือกลุ่มของสมาชิก (element) ของสิ่งที่สนใจ เช่น เซตของวันในหนึ่งสัปดาห์ หมายถึง กลุ่มของ วันจันทร์ อังคาร พุธ พฤหัสบดี ศุกร์ เสาร์ และอาทิตย์ เป็นต้น ซึ่งคำว่าเซตนั้นมีคุณสมบัติที่สำคัญคือต้องสามารถระบุได้ว่าอะไรอยู่ในเซต ซึ่งมีการใช้เซต กับการเขียนโปรแกรมเยอะมาก ๆ ตั้งแต่ระดับ Basic ไปจนถึงการทำ AI/Machine Learning เลยแหละ ยกตัวอย่างง่าย ๆ เช่น การหาผลการดำเนินการระหว่างเซต

list1 = [3, 5, 7, 9, 11]
list2 = [5, 7, 10, 12, 14]

set1 = set(list1)
set2 = set(list2)

union_result = set1.union(set2)
print("Union:", union_result)

intersection_result = set1.intersection(set2)
print("Intersection:", intersection_result)

2. ความสัมพันธ์ (Domain & Range)

“Domain” คือช่วงของค่าที่สามารถใช้เป็นอาร์กิวเมนต์ (input) หรือข้อมูลนำเข้าให้กับฟังก์ชันได้ ส่วน “Range” คือช่วงของค่าที่สามารถเป็นผลลัพธ์หรือเอาต์พุต (output) จากฟังก์ชันได้ สำหรับตัวอย่างการนำไปใช้ในงานสายคอม เช่น เราจะใช้ lambda function ในการคำนวณค่าฟิโบนัชชี (Fibonacci) ของจำนวนเต็มบวกที่รับมาเป็น Input

fibonacci = lambda n: n if n <= 1 else fibonacci(n - 1) + fibonacci(n - 2)

input_value = int(input("Enter a positive integer: "))
result = fibonacci(input_value)
print("The Fibonacci value of", input_value, "is:", result)

ในตัวอย่างนี้:

  • Domain คือจำนวนเต็มบวกที่เราป้อนเข้าไปในฟังก์ชัน fibonacci
  • Range คือค่าฟิโบนัชชีที่คำนวณขึ้นโดยใช้ฟังก์ชัน fibonacci และคืนค่ากลับมา

3. ฟังก์ชัน

ฟังก์ชัน คือ ความสัมพันธ์รูปแบบหนึ่งที่สมาชิกในโดเมนแต่ละตัวจับคู่กับสมาชิกในเรนจ์ของความสัมพันธ์เพียงตัวเดียวเท่านั้น

ซึ่งในการเขียนโปรแกรม ฟังก์ชันมีบทบาทสำคัญหลายอย่างมากๆ ไม่ว่าจะเป็นการแบ่งโปรแกรมออกเป็นส่วนเล็ก ๆ เพื่อให้จัดการได้ง่ายขึ้น และสามารถเรียกกลับมาใช้ใหม่ได้ ช่วยให้เราไม่ต้องเขียนโค้ดซ้ำ ๆ เช่น การสร้างฟังก์ชันที่คำนวณพื้นที่ของสี่เหลี่ยมผืนผ้าตามความยาวและความกว้าง

def calculate_rectangle_area(length, width):
    area = length * width
    return area

length = 5
width = 3
result = calculate_rectangle_area(length, width)
print("The area of the rectangle is:", result)

ในตัวอย่างนี้เรากำหนดฟังก์ชันที่รับพารามิเตอร์สองตัว คือความยาวและความกว้าง และนำทั้งสองตัวมาคูณกันเพื่อคำนวณพื้นที่ ซึ่งผลลัพธ์จะถูกส่งกลับโดยใช้คำสั่ง return ส่วนภายนอกฟังก์ชัน ก็มีการเรียกฟังก์ชันนี้ด้วยค่าเฉพาะสำหรับความยาวและความกว้าง จากนั้นพื้นที่ที่คำนวณได้จะถูกพิมพ์ออกมา

4. ความน่าจะเป็น

ความน่าจะเป็น (Probability) เป็นจำนวนที่ใช้เพื่อบอกโอกาสที่เหตุการณ์หนึ่ง ๆ จะเกิดขึ้น ซึ่งมี 3 ลักษณะ คือ

  • ไม่เกิดขึ้นอย่างแน่นอน จะมีค่าความน่าจะเป็นเท่ากับ 0
  • อาจจะเกิดขึ้นหรือไม่ก็ได้ จะมีค่าความน่าจะเป็นอยู่ระหว่าง 0 กับ 1
  • และเกิดขึ้นอย่างแน่นอนจะมีค่าความน่าจะเป็นเท่ากับ 1

ความน่าจะเป็นคือหลักการทางคณิตศาสตร์ที่มีบทบาทสำคัญในสายงานเทคโนโลยีมาก ๆ ทั้งถูกใช้ในการประมวลผลข้อมูลเพื่อวิเคราะห์และทำนายข้อมูลต่าง ๆ การวิเคราะห์ข้อมูลการใช้งานและตลาด ระบบแนะนำสินค้า ไปจนถึงการทำ Deep Learning ยกตัวอย่างง่าย ๆ เช่น จำลองการโยนเหรียญ

def calculate_rectangle_area(length, width):
    area = length * width
    return area

length = 5
width = 3import random

num_simulations = 1000
num_heads = 0

for _ in range(num_simulations):
    if random.random() < 0.5:
        num_heads += 1

probability_heads = num_heads / num_simulations

print("Simulated Probability of Getting Heads:", probability_heads)

โดยมีความน่าจะเป็นที่จะได้หัวเท่ากับ 0.5 และสำหรับการจำลองแต่ละครั้ง เราจะสร้างตัวเลขสุ่มระหว่าง 0 ถึง 1 โดยใช้ random.random() หากจำนวนที่สร้างขึ้นน้อยกว่า 0.5 เราจะนับเป็น “หัว”

หลังจากดำเนินการจำลองแล้ว เราจะคำนวณความน่าจะเป็นที่จะได้หัวโดยการหารจำนวน “หัว” ทั้งหมดด้วยจำนวนการจำลอง

ตัวอย่างนี้ให้ความเข้าใจพื้นฐานเกี่ยวกับวิธีการใช้ความน่าจะเป็นและการจำลองในการวิเคราะห์สถานการณ์อย่างง่าย

5. ตรรกศาสตร์

ตรรกศาสตร์(Logic) คือ ศาสตร์แห่งวิธีการให้เหตุผลและหาข้อสรุป หรือเป็นวิชาเกี่ยวกับการใช้เหตุผล เพื่อวิเคราะห์ค่าความจริง ซึ่งถูกนำไปใช้ในด้านเทคโนโลยีและการเขียนโปรแกรมเยอะมาก ๆ ทั้งใช้ในการออกแบบระบบฐานข้อมูล ใช้ในการควบคุมตรวจสอบข้อมูลบนเว็บไซต์หรือแอปพลิเคชัน รวมไปถึงการใช้ตรรกศาสตร์ในการเขียนเงื่อนไขในการทำงานของเครือข่ายคอมพิวเตอร์ ไปดูตัวอย่างง่าย ๆ กันเลย

    def is_even(number):
        if number % 2 == 0:
            return True
        else:
            return False
    
    num = 6
    if is_even(num):
        print(f"{num} is even.")
    else:
        print(f"{num} is odd.")

    ในตัวอย่างนี้ ฟังก์ชันจะรับตัวเลขเป็นอินพุต และใช้คำสั่งแบบมีเงื่อนไข (if) เพื่อตรวจสอบว่าตัวเลขหารด้วย 2 ลงตัวโดยไม่มีเศษหรือไม่ หากตรงตามเงื่อนไข ฟังก์ชันจะส่งกลับ True เพื่อระบุว่าตัวเลขเป็นเลขคู่ ถ้า False จะส่งกลับค่าเท็จ

    หลังจากกำหนดฟังก์ชันแล้ว เราจะทดสอบด้วยตัวเลข (ในกรณีนี้คือ num = 6) และมีการแสดงผลว่าตัวเลขนั้นเป็นเลขคู่หรือคี่ตามเอาต์พุตของฟังก์ชัน

    ในบทความนี้เราได้นำเสนอพื้นฐานเกี่ยวกับ Discrete Math ที่เป็นพื้นฐานที่สำคัญสำหรับนักพัฒนาและผู้ที่มีความสนใจในการเขียนโปรแกรมและเทคโนโลยีต่างๆ แน่นอนว่านี่ยังไม่ใช่ทั้งหมด! พื้นฐานและเรื่องที่น่าสนใจใน Discrete Math ยังมีอีกมากมาย เราหวังว่าบทความนี้จะเป็นจุดเริ่มต้นที่ดีสำหรับการเรียนรู้เพิ่มเติมของทุก ๆ คน

    ระบบฝึกทักษะ การเขียนโปรแกรม

    ที่พร้อมตรวจผลงานคุณ 24 ชั่วโมง

    • โจทย์ปัญหากว่า 200 ข้อ ที่รอท้าทายคุณอยู่
    • รองรับ 9 ภาษาโปรแกรมหลัก ไม่ว่าจะ Java, Python, C ก็เขียนได้
    • ใช้งานได้ฟรี ! ครบ 20 ข้อขึ้นไป รับ Certificate ไปเลย !!
    เข้าใช้งานระบบ DevLab ฟรี !เรียนรู้เพิ่มเติม

    เรียนรู้ไอที “อัพสกิลเขียนโปรแกรม” จากตัวจริง
    ปั้นให้คุณเป็น คนสายไอทีระดับมืออาชีพ

    BorntoDev

    Author BorntoDev

    BorntoDev Co., Ltd.

    More posts by BorntoDev

    เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

    ตั้งค่าความเป็นส่วนตัว

    คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

    ยอมรับทั้งหมด
    จัดการความเป็นส่วนตัว
    • คุกกี้ที่จำเป็น
      เปิดใช้งานตลอด

      ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้
      รายละเอียดคุกกี้

    • คุกกี้สำหรับการติดตามทางการตลาด

      ประเภทของคุกกี้ที่มีความจำเป็นในการใช้งานเพื่อการวิเคราะห์ และ นำเสนอโปรโมชัน สินค้า รวมถึงหลักสูตรฟรี และ สิทธิพิเศษต่าง ๆ คุณสามารถเลือกปิดคุกกี้ประเภทนี้ได้โดยไม่ส่งผลต่อการทำงานหลัก เว้นแต่การนำเสนอโปรโมชันที่อาจไม่ตรงกับความต้องการ
      รายละเอียดคุกกี้

    บันทึกการตั้งค่า