คณิตศาสตร์กับการเขียนโปรแกรม
การแก้ปัญหาทางด้านคอมพิวเตอร์ จำเป็นต้องใช้ความรู้พื้นฐานทางคณิตศาสตร์ ซึ่งโดยลำดับการเกิดของศาสตร์ทางคณิตศาสตร์ถือว่าเป็นจุดเริ่มต้นของศาสตร์สาขาอื่น ๆ และการแก้ปัญหาทางด้านคอมพิวเตอร์นั้นสามารถแก้ปัญหาด้วย ผังงาน และหรือ โปรแกรมภาษาคอมพิวเตอร์ ขึ้นอยู่กับความรู้และทักษะด้านกระบวนการทางคณิตศาสตร์ในการประยุกต์ใช้ผังงาน และหรือ โปรแกรมภาษาคอมพิวเตอร์ ในการแก้ปัญหา
เนื้อหาทางคณิตศาสตร์ที่เกี่ยวข้องกับการเขียนโปรแกรม
เซต
ใช้การคำนวณหาค่าผลลัพธ์ระหว่างสมาชิกที่อยู่ในเซต A และ B ซึ่งมักใช้ตัวแปรชุด (Array) ร่วมกับคำสั่งทำซ้ำ เป็นต้น
ตรรกศาสตร์
พื้นฐานของทุกภาษาโปรแกรม โดยการแปลงเงื่อนไขที่มนุษย์เข้าใจแปลงให้เป็นรูปแบบทางตรรกศาสตร์ ให้เข้ากับภาษาโปรแกรมที่ใช้นั้นให้ถูกต้อง โดยใช้ตารางค่าความจริง และตัวดำเนินการตรรกะ ซึ่งตัวดำเนิน “และ” และ ตัวดำเนิน “หรือ” จะใช้บ่อยมากที่สุดในการเชื่อมเงื่อนไขต่าง ๆ
ความสัมพันธ์และฟังก์ชัน
เป็นการคำนวณหาค่าตัวแปร ที่สัมพันธ์กับสมการที่ต้องการแก้ปัญหา อาจมีการใช้ร่วมกับคำสั่งทำซ้ำ หรือฟังก์ชันที่ผู้ใช้เขียนขึ้นมาเอง
ทฤษฎีจำนวน
– จำนวนเฉพาะ ใช้ในการเข้ารหัสลับ Cryptographic เทคโนโลยีการเข้ารหัสลับหรือวิทยาการการเข้ารหัสลับนั้น เริ่มเป็นที่รู้จักกันมาตั้งแต่สมัยโรมัน พัฒนาจากแนวคิดเกี่ยวกับพื้นฐานในการรักษาความปลอดภัยของข้อมูลอิเล็กทรอนิกส์และพัฒนาเรื่อยมาจนถึงปัจจุบัน ซึ่งกลายเป็นกระบวนการทางคณิตศาสตร์ ในการเข้ารหัสลับ (Cryptographic Algorithms) โดยการสร้างสิ่งที่อยู่ในรูปตัวอักษร อักขระ ตัวเลข หรือสัญลักษณ์ใด ๆ ขึ้นมา และเรียกสิ่งนั้นว่า “กุญแจ (key)” และใช้ “กุญแจ (key)” เป็นกลไกสำคัญในการ “เข้ารหัส” และ “ถอดรหัส”
– จำนวนเต็มและขั้นตอนวิธีของยุคลิด ซึ่งในระบบคอมพิวเตอร์มีการใช้ระบบเลขฐาน 4 แบบ โดยนำเลขฐาน มาประยุกต์ใช้ในการแปลงเลขฐาน ประกอบด้วย
- ระบบเลขฐานสอง (Binary Number System) เป็นเลขฐานที่ประกอบด้วยเลข 2 ตัว ได้แก่เลข 0 กับ เลข 1 ซึ่งเป็นเลขฐานที่คอมพิวเตอร์สามารถเข้าใจได้ง่าย เพราะว่าอุปกรณ์ทางไฟฟ้าก็มีสถานะเพียง 2 สถานะ คือ เปิด กับ ปิด ซึ่งก็เทียบได้กับ 0 กับ 1
- ระบบเลขฐานแปด (Octal Number System) เป็นเลขฐานที่ประกอบด้วยเลข 8 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7
- ระบบเลขฐานสิบ (Decimal Number System) เป็นเลขฐานที่ประกอบด้วยตัวเลข 10 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ซึ่งระบบเลขฐาน 10 เป็นระบบเลขฐานที่คนทั่วไปสามารถเข้าใจได้เป็นอย่างดี เพราะเป็นตัวเลขที่เกี่ยวข้องกับชีวิตประจำวัน สามารถจำได้และคำนวณได้ง่ายกว่าเลขฐานอื่น ๆ
- ระบบเลขฐานสิบหก (Hexadecimal Number System) เป็นเลขฐานที่ประกอบด้วยตัวเลข 10 ตัวและตัวอักษรแทนตัวเลขอีก 6 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 และตัวอักษรภาษาอังกฤษแทน 10 ถึง 15 ได้แก่ A, B, C, D, E, F
คณิตศาสตร์เชิงการจัด
โดยศึกษากลุ่มของวัตถุจำนวนจำกัดที่มีคุณสมบัติสอดคล้องกับเงื่อนไขบางประการ และมักกรณีที่สนใจเป็นพิเศษที่จะ “นับ” จำนวนวัตถุในกลุ่มนั้น ๆ หรืออาจหาคำตอบว่า วัตถุที่มีคุณสมบัติที่ต้องการนั้นมีอยู่หรือไม่ การศึกษาเกี่ยวกับการนับวัตถุ บางครั้งถูกจัดให้อยู่ในสาขาการแจกแจงแทน
เมทริกซ์
เป็นการมองการจัดเก็บข้อมูลในมิติเดียว หรือหลายมิติ ซึ่งต้องใช้ตัวแปรชุด (Array) ร่วมกับคำสั่งทำซ้ำ และนำไปใช้ในเปรียบเทียบข้อมูลต่าง ๆ การวิเคราะห์การเรียนรู้ของเครื่องจักร (Machine Learning) และ การรู้จำใบหน้า (Face Recognition)
ตัวอย่างโจทย์แก้ปัญหา
จงเขียนโปรแกรม หาค่าผลรวมตัวเลขของตามเทคนิคของเกาส์ โดย S คือ ผลรวมของตัวเลขตั้งแต่ 1 ถึง n
โยฮันน์ คาร์ล ฟรีดริช เกาส์ ได้รับฉายาว่า “เจ้าชายแห่งคณิตศาสตร์” (Prince of Mathematics) เนื่องจากอุทิศผลงานในทุก ๆ ด้านของคณิตศาสตร์ในยุคสมัยของเขา นอกจากนี้เกาส์ยังมีผลงานสำคัญทางด้านฟิสิกส์ โดยเฉพาะด้านดาราศาสตร์อีกด้วย
เหตุการณ์ที่แสดงความอัจฉริยะของเกาส์ให้คนทั่วไปได้ทราบ เกิดขึ้นเมื่อเขายังเป็นเด็กชายเกาส์อายุ 7 ขวบ ในห้องเรียนวันหนึ่ง ครูสั่งให้นักเรียนบวกเลขตั้งแต่ 1 ถึง 100 ครูเพียงแค่หันหลังไป เด็กชายเกาส์ก็ตอบขึ้นมาว่า 5,050 เมื่อถูกถามว่าได้คำตอบนั้นมาได้อย่างไร เด็กชายเกาส์เขียน
1+2+3+4+5+…+98+99+100 = 101+101+101+…+101 = (101×100)/2 = 10100/2 ดังนั้น คำตอบคือ 5050
ดังนั้นจึงเขียนสูตรการหาผลรวมของตัวเลขตั้งแต่ 1 – n โดยใช้ Gauss’ technique
สูตรการหาผลรวมของตัวเลขตั้งแต่ 1 – n โดยใช้ Gauss’ technique
ตัวอย่าง ผลรวมของตัวเลขตั้งแต่ 1 – 100
ตัวอย่าง ผลรวมของตัวเลขตั้งแต่ 1 – 100 โดยใช้ Gauss’ technique
ข้อมูลเพิ่มเติม http://mathcentral.uregina.ca/qq/database/qq.02.06/jo1.html
ข้อมูลนำเข้า มีเพียงบรรทัดเดียวเป็นเลขจำนวนเต็มบวก n โดย 1 < n
ข้อมูลส่งออก มีทั้งหมด 1 บรรทัด แสดง S เป็น ผลรวมของตัวเลขตั้งแต่ 1 ถึง เลข n โดยใช้เทคนิคของ Gauss
ตัวอย่างที่ 1
ข้อมูลนำเข้า | ข้อมูลส่งออก |
10 | 55 |
ตัวอย่างที่ 2
ข้อมูลนำเข้า | ข้อมูลส่งออก |
5 | 15 |
จำนวนเต็มและขั้นตอนวิธีของยุคลิด ซึ่งในระบบคอมพิวเตอร์มีการใช้ระบบเลขฐาน 4 แบบ โดยนำเลขฐาน มาประยุกต์ใช้ในการแปลงเลขฐาน ประกอบด้วย
- ระบบเลขฐานสอง (Binary Number System) เป็นเลขฐานที่ประกอบด้วยเลข 2 ตัว ได้แก่เลข 0 กับ เลข 1 ซึ่งเป็นเลขฐานที่คอมพิวเตอร์สามารถเข้าใจได้ง่าย เพราะว่าอุปกรณ์ทางไฟฟ้าก็มีสถานะเพียง 2 สถานะ คือ เปิด กับ ปิด ซึ่งก็เทียบได้กับ 0 กับ 1
- ระบบเลขฐานแปด (Octal Number System) เป็นเลขฐานที่ประกอบด้วยเลข 8 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7
- ระบบเลขฐานสิบ (Decimal Number System) เป็นเลขฐานที่ประกอบด้วยตัวเลข 10 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ซึ่งระบบเลขฐาน 10 เป็นระบบเลขฐานที่คนทั่วไปสามารถเข้าใจได้เป็นอย่างดี เพราะเป็นตัวเลขที่เกี่ยวข้องกับชีวิตประจำวัน สามารถจำได้และคำนวณได้ง่ายกว่าเลขฐานอื่น ๆ
- ระบบเลขฐานสิบหก (Hexadecimal Number System) เป็นเลขฐานที่ประกอบด้วยตัวเลข 10 ตัวและตัวอักษรแทนตัวเลขอีก 6 ตัว ซึ่งประกอบด้วยเลข 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 และตัวอักษรภาษาอังกฤษแทน 10 ถึง 15 ได้แก่ A, B, C, D, E, F
คณิตศาสตร์เชิงการจัด
โดยศึกษากลุ่มของวัตถุจำนวนจำกัดที่มีคุณสมบัติสอดคล้องกับเงื่อนไขบางประการ และมักกรณีที่สนใจเป็นพิเศษที่จะ “นับ” จำนวนวัตถุในกลุ่มนั้น ๆ หรืออาจหาคำตอบว่า วัตถุที่มีคุณสมบัติที่ต้องการนั้นมีอยู่หรือไม่ การศึกษาเกี่ยวกับการนับวัตถุ บางครั้งถูกจัดให้อยู่ในสาขาการแจกแจงแทน
เมทริกซ์
เป็นการมองการจัดเก็บข้อมูลในมิติเดียว หรือหลายมิติ ซึ่งต้องใช้ตัวแปรชุด (Array) ร่วมกับคำสั่งทำซ้ำ และนำไปใช้ในเปรียบเทียบข้อมูลต่าง ๆ การวิเคราะห์การเรียนรู้ของเครื่องจักร (Machine Learning) และ การรู้จำใบหน้า (Face Recognition)
แหล่งที่มา
Jason Brownlee. (2018, 7, Feb). Introduction to Matrices and Matrix Arithmetic for Machine Learning. Retrieved January 1, 2019, from https://machinelearningmastery.com/introduction-matrices-machine-learning
https://www.scimath.org/