2
อาร์เรย์สามารถถูกปลดได้หรือไม่?
พื้นหลัง ตัวจัดการการ์ดที่มีทักษะมากมีความสามารถในเทคนิคที่พวกเขาตัดดาดฟ้าอย่างสมบูรณ์แบบครึ่งแล้วสอดแทรกการ์ดอย่างสมบูรณ์แบบ หากพวกเขาเริ่มต้นด้วยสำรับเรียงและดำเนินการเทคนิคนี้ไม่มีที่ติ 52 ครั้งในแถวที่ดาดฟ้าจะถูกเรียกคืนเพื่อการเรียงลำดับ ความท้าทายของคุณคือการใช้สำรับไพ่จำนวนเต็มและตรวจสอบว่าสามารถเรียงลำดับได้ด้วยการใช้ไพ่ Sharo แบบ Faro หรือไม่ คำนิยาม ในทางคณิตศาสตร์ Faro shuffle เป็นการเปลี่ยนแปลงขององค์ประกอบ2 n (สำหรับจำนวนเต็มบวกn ) ซึ่งใช้องค์ประกอบในตำแหน่งi (1 ดัชนี) ไปยังตำแหน่ง 2 i (mod 2 n +1) นอกจากนี้เรายังต้องการจัดการรายการที่มีความยาวคี่ดังนั้นในกรณีนี้เพียงเพิ่มองค์ประกอบหนึ่งไปยังส่วนท้ายของรายการ (Joker ถ้าคุณมีประโยชน์) และ Faro สลับรายการใหม่ตามข้างบน แต่ไม่ต้องสนใจ องค์ประกอบหุ่นที่เพิ่มเข้ามาเมื่อตรวจสอบคำสั่งของรายการ เป้าหมาย เขียนโปรแกรมหรือฟังก์ชั่นที่รับรายการจำนวนเต็มและส่งคืนหรือส่งออกความจริงหากจำนวนของแฟโร Shuffles จำนวนหนึ่งจะทำให้รายการนั้นเรียงลำดับตามลำดับที่ไม่ลดน้อยลง (แม้ว่าจำนวนนั้นจะเป็นศูนย์ มิฉะนั้นส่งคืนหรือส่งออกเป็นเท็จ ตัวอย่าง [1,1,2,3,5,8,13,21] => True [5,1,8,1,13,2,21,3] => True [9,36,5,34,2,10,1] …