Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 12.297 ]
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;
}
}
Transformação de Matriz em Matriz Transposta
primeirafuncao.c - Criando uma função
KDE Plasma - porque pode ser a melhor opção de interface gráfica
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Instalar Linux em notebook Sony Vaio VPCEG13EB (10)
Vou destruir sua infância:) (6)
Quando vocês pararam de testar distros? (24)









