pengantar
Saya mendefinisikan kelas permutasi gelisah dalam tantangan sebelumnya . Sebagai pengingat, permutasi p dari angka 0 hingga r-1 gelisah, jika untuk setiap entri p [i] kecuali yang pertama, ada beberapa entri sebelumnya p [ik] sedemikian rupa sehingga p [i] == p [ ik] ± 1 . Sebagai fakta yang menyenangkan, saya juga menyatakan bahwa untuk r ≥ 1 , ada persis 2 r-1 permutasi panjang gelisah r . Ini berarti bahwa ada korespondensi satu-ke-satu antara permutasi panjang gelisah r dan vektor biner panjang r-1. Dalam tantangan ini, tugas Anda adalah mengimplementasikan korespondensi seperti itu.
Tugas
Tugas Anda adalah menulis sebuah program atau fungsi yang menggunakan vektor biner dengan panjang 1 ≤ n ≤ 99 , dan menghasilkan permutasi yang gelisah dengan panjang n +1 . Permutasi dapat berbasis 0 dari 1 (tetapi ini harus konsisten), dan input dan output dapat dalam format yang masuk akal. Lebih lanjut, input yang berbeda harus selalu memberikan output yang berbeda; selain itu, Anda bebas untuk mengembalikan permutasi gelisah yang Anda inginkan.
Hitungan byte terendah menang.
Contoh
Permutasi gelisah (berbasis 0) dengan panjang 4 adalah
0 1 2 3
1 0 2 3
1 2 0 3
1 2 3 0
2 1 0 3
2 1 3 0
2 3 1 0
3 2 1 0
dan program Anda harus mengembalikan salah satu dari mereka untuk masing-masing vektor delapan bit dengan panjang 3:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
0 1
dan 0 0 1
harus memberikan output dengan panjang yang berbeda.