Arka fon
Çok yetenekli kart işleyicileri, bir desteyi mükemmel bir şekilde ikiye kesen, daha sonra kartları mükemmel şekilde serpiştiren bir teknik yeteneğine sahiptir. Sıralı bir güverte ile başlarlar ve bu tekniği arka arkaya 52 kez kusursuz bir şekilde yaparlarsa, güverte sıralama düzenine geri yüklenir. Senin meydan okuma bir deste bir tamsayı dizisi almak ve sadece Faro shuffles kullanılarak sıralanıp sıralanamayacağını belirlemek için.
Tanım
Matematiksel olarak, bir Faro shuffle i (1 indeksli) pozisyonundaki elemanı 2 i (mod 2 n +1) pozisyonuna alan 2 n element üzerinde (herhangi bir pozitif tamsayı n için ) bir permütasyondur . Ayrıca tek uzunluklu listeleri de ele almak istiyoruz, bu nedenle listenin sonuna bir öğe ekleyin (eğer kullanışlı bir Joker varsa) ve Faro yeni listeyi yukarıdaki gibi karıştırın, ancak yok sayın Listenin sırasını kontrol ederken eklenen kukla öğe.
Hedef
Bir dizi Faro karması, bu listenin azalan sırada sıralanmasına neden olursa, tamsayıların listesini alan ve bir doğruluk veren veya çıktı veren bir program veya işlev yazın (bu sayı sıfır olsa bile - küçük listeler bir doğruluk vermelidir). Aksi takdirde, bir falsiyi iade edin veya çıktı alın.
Örnekler
[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
puanlama
Bu kod golf bayt kazanır en kısa kaynak.