Input: Dua bilangan bulat n dan k diberikan dalam bentuk apa pun yang sesuai untuk kode Anda
Keluaran Urutan bilangan bulat k yang tidak menurun secara acak, masing-masing dalam kisaran 1 hingga n. Sampel harus dipilih secara seragam dari semua urutan non-pengurangan dari bilangan bulat k dengan bilangan bulat dalam kisaran 1 sampai n.
Outputnya bisa dalam format apa pun yang Anda rasa nyaman.
Anda dapat menggunakan generator pseudo-acak apa pun yang disediakan oleh perpustakaan / bahasa favorit Anda.
Kita dapat mengasumsikan bahwa bilangan bulat n, k> 0.
Contoh
Katakan n, k = 2. Urutan non-menurun adalah
1,1
1,2
2,2
Setiap urutan harus memiliki probabilitas 1/3 untuk di-output.
Larangan
Kode Anda harus berjalan dalam tidak lebih dari beberapa detik untuk k = 20 dan n = 100.
Apa yang tidak berhasil?
Jika Anda hanya mengambil sampel setiap bilangan bulat secara acak dari rentang 1 hingga n dan kemudian mengurutkan daftar Anda tidak akan mendapatkan distribusi yang seragam.