Monday, March 24, 2008

แต่งภาพ (PhotoScape)

PhotoScape is an all-in-one style photo editor with fun and ease of use. Major capabilities are: viewer, editor, batch editor, page, combine, animated GIF, print, screen capture, color picker, rename, raw converter, resizing, brightness/color/white-balance adjustment, backlight correction, frames, balloons, text, drawing pictures, cropping, filters, red eye removal and blooming. PhotoScape has been used for two years and is expanding its features continuously.

Wednesday, March 12, 2008

ซูโดกุ (SudOku)

ซูโดกุ ประกอบด้วยตารางขนาด 9x9 และมีตารางย่อยขนาด 3x3 ในบางช่องจะมีตัวเลขอยู่ซึ่งเป็นตัวเลขที่กำหนดมาให้ จุดประสงค์ก็คือ ให้เติมตัวเลขลงในช่องที่ว่างอยู่ 1 ตัวเลขต่อหนึ่งช่อง ทั้งในแนวตั้งและแนวนอน จะประกอบไปด้วยเลข 1–9 ครบทุกช่อง โดยที่ตัวเลขจะไม่ซ้ำกัน และในแต่ละทอศทาง ก็จะไม่ซ้ำกันด้วย รวมถึงตารางย่อยก็ต้องมีเลข 1–9 โดยไม่ซ้ำกัน ดังนั้นคำว่า ตัวเลขเดี่ยว จึงเกิดขึ้นจากตารางเลขปริศนานี้

สรุปกฏกติกาได้ 3 ข้อดังนี้
ตาราง 4 x 4
1. ตัวเลขที่เติมในแนวนอน ต้องเติมเลข 1-4 และต้องไม่ซ้ำกัน
2. ตัวเลขที่เติมในแนวตั้ง ต้องเติมเลข 1-4 และต้องไม่ซ้ำกัน
3. ทุกตารางย่อย 2 x 2 ต้องเติมเลข 1-4 และต้องไม่ซ้ำกัน

ตาราง 6 x 6
1. ตัวเลขที่เติมในแนวนอน ต้องเติมเลข 1-6 และต้องไม่ซ้ำกัน
2. ตัวเลขที่เติมในแนวตั้ง ต้องเติมเลข 1-6 และต้องไม่ซ้ำกัน
3. ทุกตารางย่อย 2 x 3 ต้องเติมเลข 1-6 และต้องไม่ซ้ำกัน

ตาราง 9 x 9
1. ตัวเลขที่เติมในแนวนอน ต้องเติมเลข 1-9 และต้องไม่ซ้ำกัน
2. ตัวเลขที่เติมในแนวตั้ง ต้องเติมเลข 1-9 และต้องไม่ซ้ำกัน
3. ทุกตารางย่อย 3 x 3 ต้องเติมเลข 1-9 และต้องไม่ซ้ำกัน


วิธีการแก้ปัญหา
ในการแก้ปัญหาของตารางปริศนาตัวเลขนี้ จะประกอบไปด้วย 3 ขั้นตอนคื อ Scanning , Marking up and Analysing

Scanning (มองกวาด หรือ ดูผ่าน ๆ ตา)
การมองกวาด จะเริ่มในตอนแรก จนถึงขั้นตอนของการแก้ปัญหา บางครั้งจะใช้การมองกวาดอยู่บ่อย ๆ ในขั้นตอนของการวิเคราะห์ ซึ่งเทคนิคในการมองกวาดมี 2 ขั้นตอนด้วยกันคือ

1. Cross-hatcing เป็นการ scan ไปตามแถวแนวนอนและแนวตั้ง เพื่อที่จะดูว่าแถวไหนมีตัวเลขอยู่และจะได้ตัดออกไป เพื่อให้ได้ผลลัพธ์ที่เร็ว เราจะ scan ตัวเลขตามลำดับ ตั้งแต่เลข 1 – 9
2. Counting การนับ 1 – 9 ในแถวแนวนอนและแนวตั้ง ในตารางย่อย และดูว่ามีตัวเลขไหนหายไป การนับที่ขึ้นอยู่กับตัวเลขสุดท้ายของการค้นพบ จะทำให้การค้นหานั้นเร็วขึ้น จะใช้ในกรณีที่ค่าของแต่ละช่องจะนับถอยหลัง , ในด้านตรงกันข้าม (ซึ่งจะใช้ในปริศนายาก ๆ ) ซึ่งจะต่างกับการ scanning ในแถวแนวตั้งและแนวนอน และในช่องย่อยว่ามีค่าไหนที่เราไม่เห็นแต่ยังเหลืออย

Marking Up
เมื่อเรา scan แล้วไม่สามารถจะเติมตัวเลขต่อได้ เราอาจใช้วิธีเรียกว่า การ Marking หรือการทำเครื่องหมายไว้ในช่องว่าง ซึ่งมี 2 วิธีที่นิยมกัน คือ การบันทึก (ทำเครื่องหมาย) และการเขียนเครื่องหมายไว้ข้างใต้

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

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

Analysing (การวิเคราะห์)
ในส่วนของการวิเคราะห์ มี 2 ขั้นตอน คือ การขจัด หรือตัดทิ้ง กับการ what – if

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

ใน set ของเลข 1 – 9 ผลสุดท้ายจะอยู่ในช่องที่ควรจะเป็น ซึ่งวิธีนี้เป็นวีที่ใช้ในการตรวจสอบอย่างละเอียดว่าเราควรจะใส่ตัวเลขในช่องไหน หลังจากที่มีตัวเลขที่ให้มา ในแต่ละ set ซึ่งสามารถที่จะตัดตัวเลขที่ไม่เกี่ยวข้องออกจากตารางย่อยได้