1
คุณสามารถเอาชนะ Bill Gates ได้ไหม?
การเรียงลำดับแพนเค้กเป็นคำศัพท์สำหรับปัญหาทางคณิตศาสตร์ของการเรียงลำดับกองซ้อนของแพนเค้กที่ไม่เป็นระเบียบตามขนาดเมื่อไม้พายสามารถเสียบที่จุดใดก็ได้ในกองซ้อนและใช้เพื่อพลิกแพนเค้กทั้งหมดที่อยู่ด้านบน หมายเลขแพนเค้กP (n)คือจำนวนการโยนขั้นต่ำที่จำเป็นสำหรับnแพนเค้ก 1 ในปี 1979 หนุ่มบิลเกตส์และ Christos Papadimitriou เขียนกระดาษพิสูจน์ผูกพันบนของP (n) = (5n + 5) / 3 2 ฉันคิดว่ามันปลอดภัยที่จะสมมติว่า Gates (และ / หรือ Papadimitriou) เขียนโปรแกรมเพื่อทำการคัดแยกแพนเค้กโดยใช้อัลกอริทึมที่พัฒนาขึ้น (อาจช้ากว่า 1979) เนื่องจาก Gates เป็นโปรแกรมเมอร์ที่มีทักษะพวกเขาจึงอาจลองใช้รหัสนี้ได้อย่างดีเท่าที่จะทำได้ แต่ขนาดของซอร์สโค้ดไม่สามารถใช้งานได้แบบสาธารณะ (AFAIK) ท้าทาย: สร้างฟังก์ชั่น / โปรแกรมที่ดำเนินการเรียงแพนเค้กซึ่งจำนวนการพลิกสูงสุดไม่เกินขอบเขตที่ Gates และ Papadimitriou พบ 3คุณสามารถเลือกได้ว่าต้องการให้รายการน้อยไปมากหรือมากไปหาน้อยตราบใดที่มันสอดคล้องกัน คุณอาจจะคิดว่าn <50 ดังนั้นคุณต้อง จำกัด จำนวนการพลิกไปที่ (บางค่าn- ค่าที่เลือกแบบสุ่ม): n P(n) …