Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 12.034 ]
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; } }
Trabalhando com argumentos e ponteiros
Parte 2 - Sessão de estudo sobre MATRIZES
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Procurando vídeos de YouTube pelo terminal e assistindo via mpv (2025)
Gravação de tela com temporizador
Aplicativo simples para gravar tela
Como fazer boot em img do debian 12.img da web? (11)
Manjaro 25.0 no permite usar crontab (1)
trocar linhas [RESOLVIDO] (11)