Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 11.875 ]
Homepage: www.google.com
Fiz um programinha para gerar números aleatórios em c++ e resolvi compartilha-lo aqui no Viva o Linux. Quem tiver alguma dúvida sobre a linguagem C++ sugiro a leitura da apostila: www.del.urfj.br/~villas/livro_c++.html
A minha idéia aqui é apenas fornecer o código para que outras pessoas possam usá-lo, inclusive na elaboração de outros programas mais complexos, como na utilização do método de monte carlo.
Observando-o, vale ressaltar que, para gerar números inteiros, basta substituir as linhas:
x=(delta*fabs(sin(rand()))+xmin);
y=(delta*fabs(sin(rand()))+xmin);
por:
x=(rand()%(delta+1)+xmin);
y=(rand()%(delta+1)+xmin);
e declarar as devidas variáveis como inteiras. Para diferenciar o range dos valores de y, basta acrescentar as variáveis ymax, ymin e deltay, colocando-as nas devidas linhas.
Por fim, para compilar este programa, salve-o como random.cpp e use:
$g++ -w -o random random.cpp
$./random
Espero que seja útil para alguém.
//Gerando numeros reais aleatórios num intervalo [max,min] específico. //Programa para gerar números (pares xy) aleatórios -> gcc & g++ #include<iostream> /*Biblioteca padrão para entrada e saida de dados no console*/ #include<cmath> /*Biblioteca padrão para utilização de funções matematicas(fabs() e sin())*/ #include<ctime> /*Biblioteca de contagem temporal utilizada para gerar a semente do processo*/ #include <cstdlib> /*Biblioteca padrão para utilização das funções (srand() e rand()) utilizadas na geração de número aleatórios*/ using namespace std; int main() { //Declaração das variáveis int c,N,seed; float x,y,xmin,xmax,delta; //Semente baseada no tempo de processamento da CPU. seed=time(0); srand((unsigned)seed); //Definição dos parâmetros: cout << "\t Digite o limite inferior do intervalo\n"; cin >> xmin; cout << "\t Digite o limite superior do intervalo\n"; cin >> xmax; cout << "\t Qual a quantidade de números que devem ser gerados?\n"; cin >> N; delta=xmax-xmin; //Firula cout << "\v\t ##### Gerando " << N <<" pares aleatórios #####\v" << endl; cout << "\t\t > No intervalo [ " << xmin << " , " << xmax << " ]\n" << endl; //Gerando os pares: for (c=1;c<=N;c++) { x=(delta*fabs(sin(rand()))+xmin); y=(delta*fabs(sin(rand()))+xmin); cout << x << "\t" << y << endl; } }
Relógio com data usando Struct
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
SysAdmin ou DevOps: Qual curso inicial pra essa área? (2)
É cada coisa que me aparece! - não é só 3% (3)
Melhorando a precisão de valores flutuantes em python[AJUDA] (5)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta