ช้างในกรุงไคโร
ช้างในไคโรเป็นคำที่ใช้ในการเขียนโปรแกรมคอมพิวเตอร์เพื่ออธิบายข้อมูลชิ้นหนึ่งที่ตรงกับเกณฑ์การค้นหาซึ่งถูกแทรกไว้โดยเจตนาที่ส่วนท้ายของพื้นที่การค้นหา เพื่อให้แน่ใจว่าอัลกอริทึมการค้นหาจะสิ้นสุดลง เป็นตัวอย่างที่ตลกขบขันของค่าเซนติเนลคำนี้มาจากบทความตลกขบขันที่เผยแพร่บนอินเทอร์เน็ตซึ่งตีพิมพ์ใน นิตยสาร Byteในเดือนกันยายน พ.ศ. 2532 โดยอธิบายว่าอาชีพต่างๆ จะล่าช้างอย่างไร[ 1 ]
อัลกอริทึม
เมื่อล่าช้าง บทความอธิบายว่าโปรแกรมเมอร์ปฏิบัติตามอัลกอริทึมนี้: [ 1 ]
- ไปเที่ยวแอฟริกา
- เริ่มต้นที่แหลมกู๊ดโฮป [ หมายเหตุ 1 ]
- ดำเนินการไปทางทิศเหนืออย่างเป็นระเบียบ โดยเดินทางข้ามทวีปสลับไปทางทิศตะวันออกและทิศตะวันตก
- ระหว่างการผ่านแต่ละรอบ:
- จับสัตว์ทุกตัวที่พบเห็น
- เปรียบเทียบสัตว์แต่ละตัวที่จับได้กับช้างที่ทราบสายพันธุ์
- หยุดเมื่อตรวจพบการจับคู่
อัลกอริทึมนี้มีข้อผิดพลาด คือ ข้อผิดพลาด ในการตรวจสอบขอบเขต : หากไม่พบช้าง โปรแกรมเมอร์จะเดินทางต่อไปทางเหนือและไปสิ้นสุดที่ทะเลเมดิเตอร์เรเนียน ซึ่งจะทำให้โปรแกรมหยุดทำงานอย่างผิดปกติเนื่องจากการจมน้ำ
ดังนั้นโปรแกรมเมอร์ที่มีประสบการณ์จึงปรับเปลี่ยนอัลกอริทึมข้างต้นโดยการวางช้างที่รู้จักไว้ในไคโรเพื่อให้แน่ใจว่าอัลกอริทึมจะสิ้นสุดลง[ 2 ]ดังนั้นอัลกอริทึมที่แก้ไขแล้วจึงเป็นดังนี้:
- ไปเที่ยวแอฟริกา
- นำช้างไปไว้ที่กรุงไคโร
- เริ่มต้นที่แหลมกู๊ดโฮป
- ดำเนินการไปทางทิศเหนืออย่างเป็นระเบียบ โดยเดินทางข้ามทวีปสลับไปทางทิศตะวันออกและทิศตะวันตก
- ระหว่างการผ่านแต่ละรอบ:
- จับสัตว์ทุกตัวที่พบเห็น
- เปรียบเทียบสัตว์แต่ละตัวที่จับได้กับช้างที่ทราบสายพันธุ์
- หยุดเมื่อตรวจพบการจับคู่
- ถ้าคุณอยู่ในไคโร ก็ไม่มีช้างในแอฟริกา (นอกจากตัวที่คุณวางไว้ตรงนั้น)
ดูเพิ่มเติม
หมายเหตุ
- ↑ ตามความเชื่อดั้งเดิม แหลมกู๊ดโฮปเป็นจุดใต้สุดของทวีปแอฟริกา แต่ที่จริงแล้วคือแหลมอะกูลฮาส
ลิงก์ภายนอก
- รายชื่อเทคนิคการล่าช้างอื่นๆ (ไฟล์ PDF)