อัลกอริทึมของชอร์

สืบเนื่องจากบล็อกโพสที่แล้วที่ผมพยายามอธิบายเกี่ยวกับควอนตัมคอมพิวติ้งแบบให้อ่านได้ง่ายๆ แต่ลงลึก ก็ยังเหลือเรื่อง “อัลกอริทึมของชอร์” ที่ผมได้เกริ่นไว้แต่ยังไม่ได้อธิบายอะไรมาก อัลกอริทึมนี้มีเนื้อหาเยอะพอจะเขียนเป็นบทความของมันเองได้เลยทีเดียว และนั่นเป็นที่มาของบล็อกโพสนี้ที่จะว่ากันต่อเรื่องอัลกอริทึมของชอร์โดยเฉพาะ
Read the rest of this entry »

มาลองเล่น “ควอนตัมคอมพิวเตอร์”

ช่วงนี้มีข่าวเกี่ยวกับควอนตัมคอมพิวเตอร์หลายข่าว ในยุคที่ควอนตัมคอมพิวติ้งยังคงเป็นศาสตร์ปริศนาที่น้อยคนจะเข้าใจ search หาคำอธิบาย ถ้าไม่เจอกับคณิตศาสตร์ขนาดหนัก ก็ไปเจอกับคำอธิบายแบบผิวๆ ยิ่งอ่านยิ่งสงสัย ด้วยความอยากรู้ ผมเลยกลั้นใจหาหนังสือมาศึกษาด้วยตัวเอง เข้าใจบ้างไม่เข้าใจบ้าง แต่พอจะถ่ายทอดได้บ้างละ ขอฝากบทความแบบอ่านง่ายๆ แต่ลงลึก เพื่อคนอยากรู้ (ผู้อ่านไม่จำเป็นต้องรู้เรื่องควอนตัมมาก่อน แต่ควรมีพื้นในเรื่องสถาปัตยกรรมคอมพิวเตอร์อยู่บ้าง) และก็มีข่าวดีคือเดี๋ยวนี้เขามีเว็บ “ควอนตัมคอมพิวเตอร์จำลอง” ให้ทดลองเล่นกันได้ง่ายๆ ด้วย ก็เลยอยากจะมาแนะนำไปลองเล่นดูกัน เพราะการได้ลงมือ น่าจะช่วยให้เข้าใจศาสตร์ของควอนตัมคอมพิวติ้งได้ดีขึ้นมาก โดยที่คุณไม่ต้องมีพื้นทางคณิตศาสตร์มากมายอะไรก็ได้
Read the rest of this entry »

เกม Kerbal Space Program: ตอนที่ 5 ไปดวงจันทร์

เชื่อว่าเป้าหมายแรกของทุกคนที่เพิ่งมาเล่นเกมนี้ต้องการคือไปดวงจันทร์ แต่พอได้ลองเล่นดูสักพักแล้วจะรู้ว่ามันไม่ง่ายอย่างที่คิด หากยังขาดความเข้าใจเกี่ยวกับ “กลศาสตร์วงโคจร” ในโพสนี้จะกล่าวถึงกลศาสตร์วงโคจร ซึ่งเป็นเรื่องที่สำคัญที่สุดในเกม KSP จะช่วยให้เข้าใจหลักการเดินทางในอวกาศ และสามารถนำไปใช้งานได้ตลอดทั้งเกม
Read the rest of this entry »

เกม Kerbal Space Program: ตอนที่ 4 การบินและขึ้นสู่วงโคจร

การพาจรวดขึ้นสู่อวกาศไม่ใช่เรื่องยาก แค่พาจรวดให้ลอยสูงพ้นขีด 70km (สำหรับดาว Kerbin) ก็ประกาศได้ว่าขึ้นสู่อวกาศแล้ว แต่ถ้าจรวดลอยขึ้นไปแล้ว พอหมดแรงเครื่องยนต์ก็ตกลงพื้นโลก แบบนี้ถือว่ายังไม่สามารถเข้าวงโคจรได้ เป็นเพียงการขึ้นอวกาศใต้วงโคจรหรือเรียกว่าวงโคจรย่อย (Sub-Orbit) เราจะถือว่าเข้าสู่วงโคจรหลัก (Orbit) ได้ก็ต่อเมื่อจรวดของเราสามารถที่จะลอยอยู่ในอวกาศ บินรอบดาวได้ตลอดรอดฝั่งโดยไม่ต้องเดินเครื่องยนต์ใดๆ อีก
Read the rest of this entry »

SQL สำหรับกรณี … ถ้าไม่มีให้ Insert ถ้ามีให้ Update ถ้าเกินให้ Delete

บางครั้งเรามีข้อมูลอยู่ชุดหนึ่ง อยากจะ insert เข้าตาราง แต่จะสั่ง insert เลยเราก็ไม่แน่ใจว่าจะมี key ของบางเรคคอร์ดอยู่ในตารางปลายทางอยู่แล้วหรือเปล่า เพราะถ้ามีข้อมูลซ้ำกันแม้แต่เรคคอร์ดเดียวก็จะเกิด primary key violation และทำให้ insert ไม่สำเร็จ เราอยากให้มันดูเป็นรายบรรทัดได้ว่าปลายทางมี key นั้นๆ หรือยัง หากยังไม่มีจึงจะให้ insert หากมีอยู่แล้วก็ให้ update การดำเนินการลักษณะนี้เราเรียกว่าการ upsert (มาจากคำว่า update + insert) คือสามารถที่จะเลือก insert หรือ update ได้ตามแต่ว่าตารางปลายทางมี key นั้นอยู่แล้วหรือไม่
Read the rest of this entry »

เกม Kerbal Space Program: ตอนที่ 3 รู้จักกับเครื่องมือวัด

เพื่อที่จะควบคุมจรวด เราต้องเรียนรู้ที่จะอ่านค่าจากเครื่องมือวัดหลายชนิด โพสนี้จะมาทำความรู้จักกับเครื่องมือวัดชนิดต่างๆ ให้มากขึ้น อีกทั้งวิทยาศาสตร์เบื้องหลังเครื่องมือวัดชนิดต่างๆ ก็ยังมีความน่าสนใจไม่แพ้กัน
Read the rest of this entry »

เกม Kerbal Space Program: ตอนที่ 2 การทรงตัวของจรวด

ในโพสที่แล้วได้แนะวิธีดูกำลังเครื่องยนต์ให้มากพอที่จะยกจรวดขึ้น โพสนี้มาต่อกันด้วยเรื่องการทรงตัวของจรวดซึ่งมีส่วนสำคัญไม่แพ้กัน เพราะหากเครื่องยนต์มีกำลังมากก็จริง แต่ไม่ได้ติดอุปกรณ์ช่วยการทรงตัวอย่างเหมาะสม อาจจะทำให้จรวดควบคุมได้ยากลำบากหรือคุมไม่อยู่จนจรวดคว่ำหรือพังไปเลยก็ได้
Read the rest of this entry »