Entrée: deux entiers n et k donnés sous n'importe quelle forme qui convient à votre code
Sortie Une séquence aléatoire non décroissante de k entiers, chacun compris entre 1 et n. L'échantillon doit être choisi uniformément parmi toutes les séquences non décroissantes de k entiers avec des entiers compris entre 1 et n.
La sortie peut être dans n'importe quel format raisonnable qui vous convient.
Vous pouvez utiliser n'importe quel générateur pseudo-aléatoire fourni par votre bibliothèque / langue préférée.
On peut supposer que les entiers n, k> 0.
Exemple
Disons n, k = 2. Les séquences non décroissantes sont
1,1
1,2
2,2
Chaque séquence doit avoir une probabilité de 1/3 d'être sortie.
Restriction
Votre code ne devrait pas s'exécuter en quelques secondes pour k = 20 et n = 100.
Ce qui ne marche pas
Si vous échantillonnez simplement chaque entier au hasard dans la plage de 1 à n, puis triez la liste, vous n'obtiendrez pas une distribution uniforme.