ตัวอย่างการใช้ Mathematica ช่วยนับของให้ครับ

ที่หน้าคณิตศาสตร์นอกกะลา (https://www.facebook.com/mathsforlife32) มีคำถามว่า “มีช่องสี่เหลี่ยมจำนวน 6 ช่อง เรียงเป็นแนวเส้นตรง ถ้าต้องการทาสีช่องเหล่านี้ด้วยสีแดง สีขาว หรือสีดำ โดยจะทาสีแดงในช่องที่ติดกันไม่ได้ จงหาว่าจะมีวิธีทาสีได้ทั้งหมดกี่แบบ”

เนื่องจากผมขี้เกียจคิดผมเลยให้ Mathematica นับให้ดังนี้ครับ:

colors = {“R”, “W”, “B”} (*สีมีสามสี R, W, B*)
all = Tuples[colors, 6] (*ตอนนี้เอาสีมาทาเรียงกันหกตำแหน่ง*)
Length[all] (*จำนวนแบบของการทาสีทั้งหมด = 729*)
rr = Cases[all, {___, “R”, “R”, ___}] (*เลือกแบบที่มีสีแดงติดกัน*)
Length[rr] (*จำนวนแบบของการทาสีที่มีสีแดงติดกัน = 281 *)

ดังนั้นจำนวนการทาสีที่สีแดงไม่ติดกัน = 729 – 281 = 448

ถ้าจะดูว่าวิธีทาสีแบบสีแดงไม่ติดกันมีอย่างไรบ้างก็ใช้คำสั่งนี้ครับ:

Intersection[all, Complement[all, rr]] (*หาเซ็ท all – rr*)

ถ้าไม่มี Mathematica ก็เข้าไปใช้ Mathics (http://www.mathics.net/) ได้นะครับ Mathics เป็นโปรแกรมเสรี ฟรี ใช้คำสั่งเหมือนๆ Mathematica

Leave a Reply

Your email address will not be published. Required fields are marked *