Skip to main content
0

5 พื้นฐาน Discrete Math ที่สายคอมต้องรู้มาดูกัน

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

วันนี้เราจะพาทุกคนมาดูกันว่าพื้นฐานที่สำคัญของคณิตศาสตร์ไม่ต่อเนื่อง (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 ฟรี !เรียนรู้เพิ่มเติม

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

    13

    แนะนำสำหรับคุณ

    Close Menu

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

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

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

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

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

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

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

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