อัลกอริทึมของลูกบิด
ช่วงนี้ผู้ร่วมงานของผมซึ่งเป็นคนของบริษัทที่ปรึกษา เกิดอาการบ้าเห่อเล่นลูกบิดกันใหญ่เลยครับ อือม ยังไงดีล่ะ จริง ๆ แล้วไอ้เจ้าลูกบิดนี่ผมก็เห็นมาหลายสิบปีแล้วนะ แล้วก็เห็นมันฮิตกันเป็นช่วง ๆ ด้วย แต่ไม่คิดว่ามันจะกลับมาฮิตกันเป็นเรื่องเป็นราวในยุคนี้อีกแล้ว
เห็นบางคนก็นั่งหาหนทางบิดของตัวเองไป แต่บางคนก็เล่นเปิด YouTube เพื่อหาคลิปวีดีโอสอนการบิดกันเป็นเรื่องเป็นราวไปเลย!!!
โดยส่วนตัวแล้วผมไม่เคยเล่นลูกบิดได้สำเร็จเป็นเรื่องเป็นราวเลยนะ แม้แต่หน้าเดียวผมก็ไม่เคยเรียงสีครบเลย ได้ยินว่ามันมีสูตรด้วย ประมาณว่าถ้าจำสูตรได้นะ หลับตาบิดก็ยังได้เลย (ว่าเข้าไปนั่น)
ผมก็เลยคิดว่าการบิดลูกบิดแบบนี้ มันน่าจะมีอัลกอริทึมในการบิดนะ แล้วก็คิดว่ามันน่าจะเขียนเป็นโปรแกรมคอมพิวเตอร์ได้ด้วย ว่าแล้วผมก็เลยลองหาดูในอินเตอร์เน็ต ว่าจะมีใครคิดอัลกอริทึมของลูกบิดอธิบายบ้างหรือเปล่า
ปรากฎว่าหาอัลกอริทึมไม่พบครับ แต่พบตัวโปรแกรมและต้นฉบับโปรแกรมเลย โดยตัวโปรแกรมเข้าไปดูได้ที่นี่ครับ เขียนด้วยภาษา Java นะ กลไกการทำงานเป็นแบบ Java Applet คิดว่าถ้าใครรู้ AWT คงจะอ่านเข้าใจ และสามารถแยกส่วนที่เป็นกราฟิก ออกจากส่วนที่เป็นอัลกอริทึมในการค้นหาวิธีการบิดลูกบิดได้
ที่เห็นว่าของเขาเข้าท่าก็คือ นอกจากเขาจะเขียนโปรแกรมให้เป็นแบบกราฟิกแล้ว เขายังเปิดให้เราดาวน์โหลด source code ไปอ่านดูเพื่อทำความเข้าใจได้ด้วย
แต่ถ้าให้ดีที่สุดอ่ะนะ ถ้าสามารถทำ Reverse engineering ไอ้เจ้า source code ของโปรแกรม ให้กลายเป็น Technical Specification เพื่ออธิบายอัลกอริทึมในการบิดลูกบิด ให้คนทั่วไปเข้าใจได้โดยง่าย มันก็คงดีไม่น้อยเลยเน้อะ?
เพราะผมคิดว่าอัลกอริทึมในการบิดลูกบิด มันน่าจะเอาไปประยุกต์ใช้กับเรื่องอื่นได้!!!
คำค้น: อัลกอริทึม, ลูกบิด, คอมพิวเตอร์, ซอฟต์แวร์

แต่ถ้าเป็นตอนนี้คงเอามาเขียนเป็นโปรแกรมคอมพิวเตอร์ แล้วล่ะ
เอากะมันดิ เอ…ผมไม่รู้ว่าที่เขามาเล่น ๆ กันนี่เพราะเห็นในโทรทัศน์เมื่อไม่นานนี่หรือเปล่าหนอ….. สงสัยอะ
คิดถึงตอนมัธยมเลยซื้อมาเล่น
ตอนนี้ได้สีเดียวเองครับ
มันจะมีอยู่ 6 จุด ของตรงกลางแต่ละหน้าที่มันไม่บิดตาม แล้วก็ค่อย ๆ ไล่จากตรงมุม
อะไรทำนองเนี้ย
http://www.youtube.com/watch?v=htnL1KTpaY8&mode=related&search=Rubik%27s%20Cube%20NYC%20Dick%20Richard%20Leonard
มาแนวเดียวกับผมเลยคุณ pete ฮา ^-^
ตอนนั้นเพื่อนคุณ moniguna ใช้ 80486dx เป็นตัวประมวลผลป่ะครับ ถ้าใช่ล่ะก็ ไม่น่าแปลกใจเลยครับ เพราะมันก็ช้าได้ประมาณนั้นจริง ๆ
เออ จริงด้วยแฮะคุณ discovery mam เสียงมันพ้องกันจริง ๆ ด้วย
เห็นระดับโลกเขาใช้เวลาบิดกันไม่ถึง 20 วินาทีเองครับ นี่รวมเวลาคิดเข้าไปด้วยแล้วนะ อือม จะว่าไงดีล่ะ เร็วพอ ๆ กับคอมพิวเตอร์เลย
ได้สีเดียวก็ถือว่าเหนือกว่าผมเจ็ดขุมแล้วครับคุณ Audy เพราะผมเคยเล่นอ่ะนะ อย่างมากสุดก็ได้เกือบครบสีในหนึ่งหน้าอ่ะ แบบว่าขาดไปเม็ดนึง
อ้า คุณข่าก็มีสูตรในการเล่นกับเขาเหมือนกัน สูตรเฉพาะ ^-^
ผมตามเข้าไปดูในคลิบวีดีโอที่คุณ Audy ให้ดูแล้วนะ เห็นแล้วแบบว่า อยากจะบ้า โหย ต้องทำทั้งโมดูลวิเคราะห์ลูกบิดผ่านกล้อง, ต้องทำโมดูลวิเคราะห์การบิด, แถมต้องทำโมดูลควบคุมหุ่นยนต์ให้บิดลูกบิดด้วย … จะเก่งกันไปถึงไหนฟระเนี่ย????
ถ้าเขียนเป็นโปรแกรมได้แบบนี้ ก็แสดงว่ามีสมการในการแก้ปัญหา
สำหรับตัวเองแล้วไม่เคยบิดได้สำเร็จ เลยไม่สนใจจะทำ เพราะทำแล้วพาลอยากแกะมาออกมาให้หมดเลย เลิกบิดซะ
แต่ว่าเห็นที่ทำงานนั้น เขามีหลักการบิดให้สำเร็จ มีพิมพ์ออกมาเป็นกระดาษอธิบายหลักการได้ด้วยนะคะ ว่าหมุนแบบไหนแล้วจะสำเร็จน่ะ
ผมว่าถ้าจะทำจริงๆใครก็ทำได้แหละครับ มันอยู่ที่ความอดทนแล้วก็อยากทำมากกว่า ของผมนั่งงมอยู่เป็นอาทิตย์ T_T
เสาร์ที่ผ่านมา เพิ่งได้ของแท้มา ทำให้เกิดอาการอยากเล่นอีก ประกอบกับ ของแท้ มันจะหมุนได้ง่ายกว่า
Solutions มีหลายแบบล่ะมั้ง รู้สึกนะ วิธีแก้แบบในเว็บ Rubiks เลย ก็จะดูเข้าท่า แต่ว่า งงๆ เล็กน้อย เพราะว่า มันไม่ interactive
แต่เว็บนี้ เพิ่งเจอมาเมื่อก่อนเที่ยง ก็เข้าท่าดี เป็น Java อย่างที่คุณพี่ไท้บอกนี่ล่ะ ค่อยๆ ดูไปทีละหน่อย ก็พอเข้าใจบ้าง
พยายามจะไม่จำว่าหมุนยังไง แต่อยากจะจ้องๆๆๆ เพื่อทำความเข้าใจ ว่า เวลาจะบิดเม็ดนี้ ไปตรงนั้น มันเป็นยังไง เพราะเหมือนจะยังไม่ค่อยเข้าใจรูปแบบของลูกบิดสักเท่าไร
เห็นนั่ง search ทำตามสูตรกัน มันจะมีประโยชน์อันใดเนี้ย
ผมว่ามันไม่ต้องดูสูตรก็ทำได้นะ ทำไมต้องดูสูตรด้วย
อันนี้ไม่ใช่งาน copy then develope ซะหน่อย
มันก็แค่ logic ธรรมดาๆ ไม่ใช่หรือครับ
สรุปได้ว่า มันไม่มีสูตรตายตัวขนาดที่หลับตาบิดแล้วได้หรอกครับ
แต่มันจะมีสูตรว่าถ้าเจอลักษณะแบบนี้จะทำไงต่อ เจอแบบนี้แก้ยังไง ไปเรื่อยๆจนเสร็จทั้งหมด
ส่วนวิธีทำ มันมีวิธีทำ หลายแบบมากๆครับ
1.เริ่มจากแบบมาตรฐานง่ายที่สุด และเป็นแบบที่ให้ผู้เริ่มต้น ก็คือ แก้ไปทีละจุดๆ จนครบ วิธีนี้จะทำให้คนแก้เริ่มเข้าใจธรรมชาติของมัน ว่าถ้าทำแบบนี้จะได้ยังไงๆๆ
***วิธีทำคือ ทำทีละชั้น
ชั้นแรกทำกากบาท แล้วต่อด้วยมุม
ชั้นสองทำขอบให้ครบ4ด้าน
ชั้น3 ทำกากบาท ทำมุม แล้วพลิกด้านให้ถูกต้อง
โดยการทำแต่ละอย่างก็จะมีสูตรเฉพาะ ซึ่ง ก่อนจะเข้าสูตรเราต้องจัดมันให้อยู่ในรูปแบบที่ถูกต้องของสูตรนั้นๆก่อน ไม่ใช่ ใส่สูตร ใส่ๆๆๆ แล้วเสร็จนะครับ
สูตรที่มีก็เป็นแค่เครื่องมือ เราแค่เลือกนำมาใช้ให้ถูกต้องตามรูปแบบปัจจุบันที่เจอ มันต้องทำไปคิดไปครับ
แล้วคราวนี้ สิ่งที่พวกเซียนทั้งหลายเขาทำกันก็คือต้องทำให้เร็ว แข่งขันกันเป็นสถิติ 13 วิ อะไรแบบนั้น
เขาก็จะคิดสูตรการแก้ขึ้นมาใหม่ โดยไม่ทำทีละชั้นแล้ว เขาทำแบบใหม่ โดยเริ่มจากมุม แล้วขยายกว้างออกไปเรื่อยๆ จนครบลูก
ซึ่งแบบนี้มันใช้การบิดโดยรวมน้อยกว่าทำทีละชั้น แต่ก็ต้องแลกมาด้วยอัลกอริทึ่มที่ซับซ้อนกว่าและยากกว่า
นอกจากนี้ก็ยังมีคนคิดค้นอีกหลากหลายวิธี ซึ่งมันก็มีมาก แต่ไม่ค่อยนิยม เพราะมันต้องแลกกันระหว่าง ความเร็ว กับ ความซับซ้อน
ถ้านึกภาพไม่ออกให้ลองนึกว่า
คุณจะทำยังไง เพื่อที่จะให้มองเห็นแล้วบิดรวดเดียวออกได้เลย
แน่นอนคุณก็ต้องมีอัลกอริทึ่มเตรียมไว้เป็นพันๆแบบ
ผมน่ะก๊าปอิอิ
อย่าจะถามอะก๊าปไอลูกนี้มันเรียกว่าอะไรเหไรอก๊าปอิอิ
ซื่อมาเล่นยังไม่รู้เลยก๊าปอิอิ
พอดี นู๋ก็ชอบเล่น ลูกบิดนี่เหมือนกันล่ะค่ะ
ช่วงสมัย ม.ปลาย เห็นเพื่อนๆเห่อเล่นกัน เลยซื้อมาเล่นบ้าง
แล้วก็บังเอิญมีเพื่อนที่เล่นได้อยู่อ่ะค่ะ เลยให้เค้าสอนเล่น
อย่างที่คุณ kike บอกอ่ะค่ะ มันจะทำเป็นขั้นตอน
แต่รู้สึกว่าที่ นู๋ทำ จะเริ่มจาก
ทำให้ด้านหนึ่งด้านเป็นสีเดียวกันโดยที่สีของขอบด้านถัดไปจะต้องเป็นสีเดียวกันด้วย อะไรประมาณนี้น่ะค่ะ แล้วทำไปทีละขั้น
คือถ้าเป็นขั้นตอนแบบนู๋ ไวสุดๆน่าจะประมาณ นาทีกว่าๆ อ่ะค่ะ เท่าที่เคยทำ
แบบว่า อัลกอริทึม ไม่ค่อยมะมีอ่ะค่ะ เถือกๆเอา
ตอบคุณ โอก๊าป นะคะ
ภาษาไทยที่เรียกทั่วไป เราเรียก ลูกบิด อ่ะค่ะ
ภาษาอังกฤษ เรียกว่า Rubik’s Cube
อันนี้อาจารย์สอนภาษาต่างประเทศบอกตอนเห็นเอามาเล่นกันในคาบเรียน
เพื่อนในห้องเค้า เรียก fantastic cube อ่ะค่ะ สงสัยอาจารย์กลัวลูกศิษย์จาไปเรียกให้คนอื่นฟังแล้วขายหน้า-*-
แต่ผมก็ไม่ได้ตั้งใจจะทำให้เร็วขี้เกียจทำ คิดว่ามันต้องมีการจำตำแหน่งที่มันจะไปออกในแต่ละวิธีการบิดเพื่อที่จะไม่ต้องพลิกไปพลิกมามากนัก ไม่ชอบจำซะด้วยดิขี้เกียจ แค่นี้ก็พอแล้ว
ตอนนี้เล่น 5×5 ยังไม่มีเวลาคิดสูตรเลยรู้สึกมันชนกันวุ่นวายกว่า 3×3 เยอะเลย แต่ก็ลองใช่วิธีของ 3×3 มันจะเปลี่ยนได้ไม่ครบยังเหลือสีอีกบานเลย
ทำได้เป็นแถวๆไปได้แค่สองแถวเหลือแถวเดียวทำไม่ได้สักที
มันมีสูตรการเล่นให้จำเป็นหลักๆไปนะครับ
ผมไม่เคยเห็นมันจะเป็นกฏตายตัวสักที
http://www.rubiks-diy.com/webboard/index.php?PHPSESSID=6279b8874b1bef720573ea1c8fbda543&
http://www.rubiks-diy.com/webboard/index.php