Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 11.980 ]
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; } }
Script Acadêmico - Matrizes em C
Mostra valores da tabela ascii
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Jogando com Proton no LInux (0)
Ingress NGINX Controller CVSS base score of 9.8 (4)
Impossível corrigir problemas, você manteve (hold) pacotes quebrados. (2)