Tantangan
Untuk sekumpulan integer n, tulis sebuah program yang akan menampilkan indeks leksikografinya.
Aturan
- Input hanya boleh berupa satu set bilangan bulat non-negatif unik yang dipisahkan oleh spasi.
- Anda harus menampilkan indeks leksikografis (kisaran 0 hingga n! -1 inklusif) dari permutasi.
- Tidak ada perpustakaan permutasi atau permutasi bawaan yang dapat digunakan.
- Anda tidak boleh membuat set permutasi atau subset permutasi input untuk membantu Anda menemukan indeks.
- Anda juga tidak bisa menambah atau mengurangi permutasi yang diberikan ke permutasi berikutnya / sebelumnya (secara leksikografis).
- Poin bonus (-10 byte) jika Anda menemukan cara untuk menyelesaikan ini tanpa menggunakan faktorial.
- Runtime harus kurang dari 1 menit untuk n = 100
- Kode terpendek dengan jumlah byte menang
- Pemenang dipilih Selasa (22 Juli 2014)
Lebih Lanjut Tentang Permutasi
- http://www.monkeyphysics.com/articles/read/26/numbering_permutations.html
- Operasi grup permutasi
- http://lin-ear-th-inking.blogspot.com/2012/11/enumerating-permutations-using.html
Contohnya
0 1 2 --> 0
0 2 1 --> 1
1 0 2 --> 2
1 2 0 --> 3
2 0 1 --> 4
2 1 0 --> 5
0 1 2 3 4 5 6 7 --> 0
0 1 2 3 4 5 7 6 --> 1
0 1 2 3 4 6 5 7 --> 2
1 3 5 17 --> 0
781 780 779 13 --> 23
81 62 19 12 11 8 2 0 --> 40319
195 124 719 1 51 6 3 --> 4181