TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

TESTE DA FUNÇÃO RAND

Por:   •  19/5/2022  •  Trabalho acadêmico  •  652 Palavras (3 Páginas)  •  77 Visualizações

Página 1 de 3

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");

...

Baixar como (para membros premium)  txt (2.3 Kb)   pdf (39.4 Kb)   docx (548.4 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com