remixman's blog

Ranking มาจากวิธีวัด - จาก HPL สู่ HPCG

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

Taxonomy upgrade extras: 

Monty Hall Problem - เมื่อความจริงและความรู้สึกไม่ไปด้วยกัน

ผมชอบปัญหา Monty Hall Problem มาก เมื่อครั้งแรกที่ได้ยินก็รู้สึกว่ามีอะไรชวนประหลาดพอสมควร เลยคิดว่าจะเอามาเล่าต่อสักหน่อย เริ่มจากการอธิบายก่อนแล้วกันนะครับว่ามันคืออะไร

Taxonomy upgrade extras: 

วิธีการ Parse JSON ขนาดใหญ่ใน Android

ยามเช้าในวันที่อากาศไม่ค่อยจะสดใสวันหนึ่ง ผมได้รับแจ้งจาก User ผู้ใช้งานแอป miimai ว่าเกิดปัญหาในการใช้งานบางอย่างขึ้น และได้ Report ข้อผิดพลาดมาให้ผมเรียบร้อยแล้ว ผมก็เลยรีบไปเปิดดูข้อมูลในทันใดและพบว่าเป็น OutOfMemoryError ตอนที่เห็นทีแรกยังค่อยข้างงงอยู่บ้างว่ามันเป็นไปได้ยังไง ปกติแล้วแอปแทบจะไม่ใช้ Memory เลยด้วยซ้ำ

ผมค่อยๆ ไล่ดูบรรทัดที่เกิดปัญหาและพบว่ามันมาจากบรรทัดนี้

Taxonomy upgrade extras: 

Derangement การเรียงสับเปลี่ยนที่ไม่มีของชิ้นใดอยู่ที่เดิม

สมมติว่าคุณมีนิยายอยู่เรื่องหนึ่งที่มีความยาวทั้งสิ้น $n$ เล่มจบ แล้วคุณเกิดอยากลองสลับการวางแต่ละเล่มโดยที่ไม่มีเล่มใดอยู่แหน่งเดิมเลย (เช่น เล่ม 1 ไม่อยู่ตำแหน่งที่ 1, เล่ม 2 ก็ไม่อยู่ในตำแหน่งที่ 2 รวมถึงเล่มอื่นๆทุกเล่ม) ถามว่าคุณสามารถเรียงนิยายของคุณได้กี่วิธี?

Taxonomy upgrade extras: 

Zeal เครื่องมือสำหรับดู Document ภาษาต่างๆแบบ offline

สำหรับโปรแกรมเมอร์แล้ว การเปิด Document ของแต่ละภาษานั้นคงจะไม่ใช่เรื่องแปลกแต่ประการใด เพราะคงไม่มีใครที่จำ API หรือฟังก์ชันที่มีให้ได้ทั้งหมด ยิ่งในปัจจุบันที่มี framework และภาษาใหม่ๆออกมาให้เลือกใช้กันมากหน้าหลายตาแล้ว การเปิด Document ก็ยิ่งมีความสำคัญเข้าไปอีก

เครื่องมือที่หลายคนใช้สำหรับการเข้าถึง Document เหล่านั้นก็อาจจะเป็น Google ซึ่งสามารถค้นหาได้ทันใจ และสะดวกมากทีเดียว แต่เกิดถ้าตอนนั้นไม่มีอินเตอร์เน็ตหรือว่าไม่สะดวกที่จะเข้าล่ะ?

Taxonomy upgrade extras: 

แนะนำ C++11 - มีอะไรใหม่ มีอะไรดี

ก่อนอื่นหลายคนอาจจะมีคำถามที่ว่าแล้ว C++11 คืออะไร? ต่างจาก C++ ธรรมดายังไง? คำตอบก็คือว่า C++11 เป็นมาตรฐานของ C++ ตัวใหม่ครับ ซึ่งเป็นมาตรฐานที่ออกมาในปี 2011 คือหมายถึงเถียงกันเสร็จเรียบร้อยแล้วว่าจะให้มีหรือไม่มีอะไรบ้าง อย่างไร ซึ่งถ้าย้อนกลับไปตอนแรกเหมือนมาตรฐานนี้จะใช้ชื่อแบบลำลองว่า C++0x นั่นไม่แน่ใจว่าจะเสร็จในปีไหนแต่คงมี 200x นี่แหละ ซึ่งพอเอาเข้าจริงก็ลากยากมาถึงปี 2011 เลยทีเดียว ถึงขนาดมีคนเล่นมุกว่า 0x ที่ว่าคือ 0B (เลขฐาน 16) นั่นเอง (ฮา)

Taxonomy upgrade extras: 

Function Prototype ขาดไปได้หรือเปล่า?

ขณะที่ผมกำลังจะอธิบายเรื่อง function prototpye ในภาษา C ในคนอื่นฟัง ก็เลยเริ่มเกริ่นก่อนว่าฟังก์ชันใดๆที่เราจะใช้เนี่ย ต้อง declare มันขึ้นมาก่อนนะ ไม่งั้นเวลาเรียก (call) โปรแกรมจะไม่รู้จัก เสร็จแล้วผมก็ลองเขียนฟังก์ชันหน้าตาประมาณนี้ให้ดู เพื่อจะแสดงให้เห็นว่ามันจะพัง

Taxonomy upgrade extras: 

Generating Subsets

มีหลายปัญหาในการเขียนโปรแกรมที่เราจะต้องแก้ด้วยการสร้างซับเซตทั้งหมดที่เป็นไปได้ขึ้นมา เพื่อทดสอบวิธีที่เป็นไปได้ทั้งหมด ปัญหาที่เกิดขึ้นคือจะสร้างซับเซตได้อย่างไร?

ความรู้แรกที่ทุกคนน่าจะมีเกี่ยวกับซับเซตทั้งหมดของเซตหนึ่งๆคือ ซับเซตทั้งหมดจะมี $2^n$ แบบ (เมื่อเซตนั้นมีสมาชิก n ตัว) เช่น เซต $\{1, 2, 3\}$ มีซับเซตที่เป็นไปได้ทั้งหมด 8 ตัวได้แก่ $\{\}, \{1\}, \{2\}, \{3\}, \{1,2\}, \{1,3\}, \{2,3\}$ และ $\{1,2,3\}$

ทีนี้เราจะใช้เลขฐานสองเข้ามาช่วยในการสร้างซับเซตทั้งหมดแล้วครับ ลองดูเลขฐานสองของ 0 จนถึง 7 ดูครับ

Taxonomy upgrade extras: 

Pages

Subscribe to RSS - remixman's blog