TESTE DA FUNÇÃO RAND
Por: Matheus Aluízio • 19/5/2022 • Trabalho acadêmico • 652 Palavras (3 Páginas) • 88 Visualizações
TESTE DA FUNÇÃO RAND()
Uma boa função para geração de números aleatórios deve gerar valores com igual probabilidade,
i.e., se eu quero gerar 100 valores entre 1 e 10, o número de vezes que cada número é
gerado deve ser próximo de 10. Assim, nesta prática você deve criar um programa para testar
a qualidade da função rand() da linguagem C. Para isso, gere 10000 números aleatórios
entre 0 (inclusive) e 99 (inclusive) e conte quantas vezes cada número é gerado. Imprima a
diferença entre a maior e a menor contagem. Exemplo: se o número 83 foi aquele que mais
vezes foi gerado, com 108 gerações, e o número 12 foi aquele que menos vezes foi gerado,
com 93 gerações, então seu programa deve imprimir 108−93 = 15.
Dica: crie um vetor de inteiros de 100 posições para armazenar quantas vezes cada número
(entre 0 e 99) é gerado. Exemplo: se você gerar o número 88, faça vetor_
ontagem[88℄++;.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int random(int n){
return rand ()%n;
}
void main() {
srand((unsigned)time(NULL));
int i, n, dif;
int desv1 = 0;
int soma = 0;
int maior = 0;
int menor = 10000;
int vetor_contagem[100];
float media, desv2;
for (i = 0; i < 100; i++){
vetor_contagem[i] = 0;
}
for (i = 0; i < 10000; i++){
n = random(100);
vetor_contagem[n]++;
}
for (i = 0; i < 100; i++){
if (vetor_contagem[i] > maior)
maior = vetor_contagem[i];
if (vetor_contagem[i] < menor)
menor = vetor_contagem[i];
soma += vetor_contagem[i];
}
dif = maior - menor;
media = soma/100;
for (i = 0; i < 100; i++){
desv1 += pow((vetor_contagem[i] - media),2);
}
desv2 = sqrt(desv1/99);
printf ("\n Teste de confiabilidade da funcao rand() para 10000 numeros gerados:\n");
...