Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 12.254 ]
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;
}
}
Decimal ( 8 bits ) para binário
Parte 4 - Sessão de estudo sobre VETORES
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Cirurgia no Linux Mint em HD Externo via USB
Anúncio do meu script de Pós-Instalação do Ubuntu
Instalar Webmin no Redhat e derivados
Alguém já testou o novo COSMIC Desktop? O que achou? (6)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (3)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (2)









