Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 11.703 ]
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; } }
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
E a guerra contra bots continua
Tradução do artigo do filósofo Gottfried Wilhelm Leibniz sobre o sistema binário
Conheça o firewall OpenGFW, uma implementação do (Great Firewall of China).
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Como configurar o Openvpn do pfSense para entregar da memsa faixa de I... (1)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba