Tantangan:
Input: Daftar bilangan bulat positif yang berbeda dalam kisaran .
Keluaran: Bilangan bulat: berapa kali daftar diacak-acak . Untuk daftar, ini berarti daftar ini dibagi menjadi dua bagian, dan bagian ini saling terkait (yaitu mengacak-acak daftar yang [1,2,3,4,5,6,7,8,9,10]
akan dihasilkan sekali [1,6,2,7,3,8,4,9,5,10]
, jadi untuk tantangan ini input [1,6,2,7,3,8,4,9,5,10]
akan menghasilkan 1
).
Aturan tantangan:
- Anda dapat mengasumsikan bahwa daftar hanya akan berisi bilangan bulat positif dalam kisaran (atau jika Anda memilih untuk membuat daftar input yang diindeks 0).
- Anda dapat mengasumsikan semua daftar input akan menjadi daftar acak-acak, atau daftar diurutkan yang tidak dikocok (dalam hal ini hasilnya adalah
0
). - Anda dapat mengasumsikan bahwa daftar input akan mengandung setidaknya tiga nilai.
Contoh langkah demi langkah:
Memasukkan: [1,3,5,7,9,2,4,6,8]
Unshuffling sekali menjadi:, [1,5,9,4,8,3,7,2,6]
karena setiap item bahkan diindeks 0 datang terlebih dahulu [1, ,5, ,9, ,4, ,8]
, dan kemudian semua item 0-diindeks aneh setelah itu [ ,3, ,7, ,2, ,6, ]
.
Daftar ini belum dipesan, jadi kami melanjutkan:
Membatalkan daftar lagi menjadi: [1,9,8,7,6,5,4,3,2]
Sekali lagi menjadi: [1,8,6,4,2,9,7,5,3]
Lalu: [1,6,2,7,3,8,4,9,5]
Dan akhirnya:[1,2,3,4,5,6,7,8,9]
:, yang merupakan daftar yang diurutkan, jadi kita selesai mengacak.
Kami melepas paket aslinya [1,3,5,7,9,2,4,6,8]
lima kali [1,2,3,4,5,6,7,8,9]
, jadi hasilnya adalah5
dalam kasus ini.
Aturan umum:
- Ini adalah kode-golf , jadi jawaban tersingkat dalam byte menang.
Jangan biarkan bahasa kode-golf mencegah Anda memposting jawaban dengan bahasa non-codegolf. Cobalah untuk memberikan jawaban sesingkat mungkin untuk bahasa pemrograman 'apa saja'. - Aturan standar berlaku untuk jawaban Anda dengan aturan I / O default , sehingga Anda diizinkan untuk menggunakan STDIN / STDOUT, fungsi / metode dengan parameter yang tepat dan tipe pengembalian, program penuh. Panggilanmu.
- Celah Default tidak diperbolehkan.
- Jika memungkinkan, silakan tambahkan tautan dengan tes untuk kode Anda (yaitu TIO ).
- Juga, menambahkan penjelasan untuk jawaban Anda sangat dianjurkan.
Kasus uji:
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]
Panjangnya 9, tapi saya akan menambahkan beberapa lagi untuk panjang 7 dan 11 mungkin. EDIT: Menambahkan kasus uji [1,3,5,7,2,4,6] = 2
(panjang 7) dan [1,6,11,5,10,4,9,3,8,2,7] = 6
(panjang 11). Semoga itu bisa membantu.
[1,6,2,7,3,8,4,9,5,10]
atau [6,1,7,2,8,3,9,4,10,5]
mungkin. Dalam tantangan saya itu tidak berarti bahwa kartu teratas akan selalu tetap menjadi kartu teratas, jadi itu memang sedikit trik. Saya belum pernah melihat seseorang atau hanya menggunakan riffle-shuffles untuk mengocok setumpuk kartu. Biasanya mereka juga menggunakan jenis shuffle lain di antaranya. Bagaimanapun, sudah terlambat untuk mengubah tantangan sekarang, jadi demi tantangan ini kartu teratas akan selalu tetap menjadi kartu teratas setelah mengacak-acak.