Entrada: Dois números inteiros n e k, fornecidos de qualquer forma que seja conveniente para o seu código
Saída Uma sequência aleatória não decrescente de k números inteiros, cada um no intervalo de 1 a n. A amostra deve ser escolhida uniformemente entre todas as seqüências não decrescentes de k números inteiros com números inteiros no intervalo de 1 a n.
A saída pode estar em qualquer formato razoável que você achar conveniente.
Você pode usar qualquer gerador pseudo-aleatório que sua biblioteca / idioma favorito fornecer.
Podemos assumir que os números inteiros n, k> 0.
Exemplo
Diga n, k = 2. As seqüências não decrescentes são
1,1
1,2
2,2
Cada sequência deve ter probabilidade de 1/3 de ser emitida.
Restrição
Seu código deve ser executado em apenas alguns segundos para k = 20 en = 100.
O que não funciona
Se você apenas amostrar cada número inteiro aleatoriamente do intervalo de 1 a n e classificar a lista, não obterá uma distribuição uniforme.