พื้นหลัง
ตัวจัดการการ์ดที่มีทักษะมากมีความสามารถในเทคนิคที่พวกเขาตัดดาดฟ้าอย่างสมบูรณ์แบบครึ่งแล้วสอดแทรกการ์ดอย่างสมบูรณ์แบบ หากพวกเขาเริ่มต้นด้วยสำรับเรียงและดำเนินการเทคนิคนี้ไม่มีที่ติ 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] => True
[1,0] => True
[0] => True
[] => True
[3,2,1] => True
[3,1,2] => False
[9,8,7,6,5,4,3,2,1,0] => True
[9,8,7,6,5,4,3,2,0,1] => False
[3,1,4,1,5,9,2,6,9] => False
[-1,-1,-1,-2] => True
เกณฑ์การให้คะแนน
นี่คือcode-golfดังนั้นแหล่งที่สั้นที่สุดในหน่วยไบต์ชนะ