Como obter números aleatórios com o gerador errado
Pergunta: Suponha que você tenha um gerador de números aleatórios randn () que retorne um número aleatório distribuído uniformemente entre 0 e n-1. Dado qualquer número m, escreva um gerador de números aleatórios que retorne um número aleatório distribuído uniformemente entre 0 e m-
Minha resposta
-(int)randm() {
int k=1;
while (k*n < m) {
++k;
}
int x = 0;
for (int i=0; i<k; ++i) {
x += randn();
}
if (x < m) {
return x;
} else {
return randm();
}
}
Isso está correto?