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

Algoritmo 2

Seminário: Algoritmo 2. Pesquise 862.000+ trabalhos acadêmicos

Por:   •  29/9/2013  •  Seminário  •  1.038 Palavras (5 Páginas)  •  281 Visualizações

Página 1 de 5

/*

Algoritmo 2 – Gerador de números inteiros aleatórios Gerador de distribuicao uniforme retorna um numero inteiro

na faixa low – high, ou seja, [low,high].

*/

#include <conio.h>

#include <stdio.h>

#include <conio.h>

#include<string.h>

# define tam 9

int min,i,v[tam];

void cadastra(){

int j;

for(j=0; j<tam; j++)

v[j]=rand();

}

void linear(int px, int pL[], int pn)

{

int i;

for(i=0; i<pn; i++)

if( px == pL[i] )

{ printf("encontrado");

return;

}

printf("nao existe");

}

void binaria (int px, int pv[]) {

int i=0, f=8,m;

while( i<=f )

{ m = (i+f)/2;

if( px == pv[m] ) {

printf("achou "); return;}

if( px < pv[m] )

f = m-1;

else i = m+1;

}

printf("nao achou");

}

int selmin(int pv[], int pi)

{

int j, min=pi;

for(j=pi+1; j<tam; j++)

if( pv[min]>pv[j] )

min=j;

return min;

}

void selecao(int pv[])

{ int i, min, x;

for(i=0; i<tam-1; i++)

{ min = selmin(pv,i);

x = pv[i];

pv[i] = pv[min];

pv[min] = x;

}}

void ordbolha (int pv[])

{ int i, j;

for(i=1; i<tam; i++)

for(j=0; j<tam-i; j++)

if( pv[j]>pv[j+1] )

{ int x = pv[j];

pv[j] = pv[j+1];

pv[j+1] = x;

} }

void imprime(int pv[])

{ int i;

for(i=0; i<tam; i++)

printf(" %d, ",pv[i]);

}

main ()

{

int inteiros_unif(seed, low, high)

long int *seed; int low; int high;

{

int unif_ret;

long int m,a,b,c, k;

double value_0_1;

m = 2147483647;

a = 16807;

b = 127773;

c = 2836;

k = *seed/b;

*seed = a * (*seed % b) - k * c;

if (*seed <0)

*seed = *seed + m;

value_0_1 = (double) *seed/m;

unif_ret = low+value_0_1*(high-low+1);

return (unif_ret);

int inteiros_unif(seed, low, high)

long int *seed; int low; int high;

{

int unif_ret;

long int m,a,b,c, k;

double value_0_1;

m = 2147483647;

a = 16807;

b = 127773;

c = 2836;

k = *seed/b;

*seed = a * (*seed % b) - k * c;

if (*seed <0)

*seed = *seed + m;

value_0_1 = (double) *seed/m;

unif_ret = low+value_0_1*(high-low+1);

return (unif_ret);

}

...

Baixar como (para membros premium)  txt (3.9 Kb)  
Continuar por mais 4 páginas »
Disponível apenas no TrabalhosGratuitos.com