quarta-feira, 1 de fevereiro de 2012

randn usando randm

Um problema mais geral seria construir a função randn usando randm. Podemos separar em dois casos:
Caso 1: n < m
int randn(){
 int z;
 do{
   z = randm();
 }while(z>=m-(m%n));
 return z%n;
}

Caso 2: n> m
int randn(){
  do{
   z = randm()*m + randm();
  }while(z >= m*m - ( m*m % mmc(m,n)));
  return z%n;
}

Nenhum comentário: