Meydan okuma:
Giriş: aralığında farklı pozitif tam sayıların .
Çıktı: Bir tamsayı: Listenin karıştırılma süresi . Bir liste için, bu, listenin iki yarıya bölündüğü ve bu yarımların birleştirildiği anlamına gelir (yani listenin bir [1,2,3,4,5,6,7,8,9,10]
kez karıştırılması, sonuçta ortaya çıkar [1,6,2,7,3,8,4,9,5,10]
, bu nedenle bu zorlama için giriş [1,6,2,7,3,8,4,9,5,10]
sonuçlanır 1
).
Meydan okuma kuralları:
- Listenin yalnızca aralığında (veya 0 dizine alınmış giriş listelerine sahip olmayı seçerseniz aralığında pozitif tam sayılar içerdiğini varsayabilirsiniz. ).
- Tüm giriş listelerinin geçerli bir karıştırmalı karıştırılmış liste veya karıştırılmamış sıralanmış bir liste olacağını varsayabilirsiniz (bu durumda çıktı
0
). - Giriş listesinin en az üç değer içereceğini varsayabilirsiniz.
Adım adım örnek:
Giriş: [1,3,5,7,9,2,4,6,8]
Bir kez karıştırmak, şu şekilde olur: [1,5,9,4,8,3,7,2,6]
çünkü her 0 dizine eklenmiş öğe bile önce gelir [1, ,5, ,9, ,4, ,8]
, ardından bundan sonra tüm 0 dizine eklenmiş öğeleri içerir [ ,3, ,7, ,2, ,6, ]
.
Liste henüz sipariş edilmedi, devam ediyoruz:
Listenin kaldırılması tekrar olur: [1,9,8,7,6,5,4,3,2]
Tekrar olur: [1,8,6,4,2,9,7,5,3]
Sonra: [1,6,2,7,3,8,4,9,5]
Ve sonunda: [1,2,3,4,5,6,7,8,9]
ki bu, sıralı bir listedir, bu yüzden karıştırmayı bitirdik.
Orijinali [1,3,5,7,9,2,4,6,8]
elde etmek için beş kez karıştırdık [1,2,3,4,5,6,7,8,9]
, bu yüzden çıktı 5
bu durumda.
Genel kurallar:
- Bu kod golf , bayt cinsinden en kısa cevap kazanır.
Code-golf dillerinin, codegolfing olmayan dillerle cevap göndermekten vazgeçmesine izin vermeyin. Herhangi bir programlama dili için mümkün olduğunca kısa bir cevap bulmaya çalışın. - Standart G / Ç kurallarına cevabınız için standart kurallar geçerlidir , bu nedenle STDIN / STDOUT işlevlerini, uygun parametreleri içeren fonksiyonlar / yöntemleri ve dönüş tipini, tam programları kullanmanıza izin verilir. Senin çağrı.
- Varsayılan Loopholes yasaktır.
- Mümkünse, lütfen kodunuzu test eden bir bağlantı ekleyin (ör. TIO ).
- Ayrıca, cevabınız için bir açıklama eklemek şiddetle tavsiye edilir.
Test durumları:
Input Output
[1,2,3] 0
[1,2,3,4,5] 0
[1,3,2] 1
[1,6,2,7,3,8,4,9,5,10] 1
[1,3,5,7,2,4,6] 2
[1,8,6,4,2,9,7,5,3,10] 2
[1,9,8,7,6,5,4,3,2,10] 3
[1,5,9,4,8,3,7,2,6,10] 4
[1,3,5,7,9,2,4,6,8] 5
[1,6,11,5,10,4,9,3,8,2,7] 6
[1,10,19,9,18,8,17,7,16,6,15,5,14,4,13,3,12,2,11,20] 10
[1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20] 17
[1,141,32,172,63,203,94,234,125,16,156,47,187,78,218,109,249,140,31,171,62,202,93,233,124,15,155,46,186,77,217,108,248,139,30,170,61,201,92,232,123,14,154,45,185,76,216,107,247,138,29,169,60,200,91,231,122,13,153,44,184,75,215,106,246,137,28,168,59,199,90,230,121,12,152,43,183,74,214,105,245,136,27,167,58,198,89,229,120,11,151,42,182,73,213,104,244,135,26,166,57,197,88,228,119,10,150,41,181,72,212,103,243,134,25,165,56,196,87,227,118,9,149,40,180,71,211,102,242,133,24,164,55,195,86,226,117,8,148,39,179,70,210,101,241,132,23,163,54,194,85,225,116,7,147,38,178,69,209,100,240,131,22,162,53,193,84,224,115,6,146,37,177,68,208,99,239,130,21,161,52,192,83,223,114,5,145,36,176,67,207,98,238,129,20,160,51,191,82,222,113,4,144,35,175,66,206,97,237,128,19,159,50,190,81,221,112,3,143,34,174,65,205,96,236,127,18,158,49,189,80,220,111,2,142,33,173,64,204,95,235,126,17,157,48,188,79,219,110,250]
45
[1,3,5,7,9,2,4,6,8]
Uzunluk 9, ama belki uzunluk 7 ve 11 için birkaç tane daha ekleyeceğim. EDIT: Test durumları [1,3,5,7,2,4,6] = 2
(uzunluk 7) ve [1,6,11,5,10,4,9,3,8,2,7] = 6
(uzunluk 11) eklendi. Umarım yardımcı olur.
[1,6,2,7,3,8,4,9,5,10]
veya [6,1,7,2,8,3,9,4,10,5]
mümkündür. Mücadelemde bu, en yüksek kartın her zaman en yüksek kart olacağı anlamına gelir, bu yüzden bu gerçekten biraz kandırmacadır. Bir kimsenin kart destesini karıştırmak için sadece fırfır karıştırıcı kullanmayacağını görmedim . Genellikle aralarında başka tipte shuffle da kullanırlar. Her neyse, şimdi mücadeleyi değiştirmek için artık çok geç, bu yüzden bu meydan okuma uğruna üst kart her zaman bir oluk karışıklığından sonra üst kart olarak kalacak.