Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 12.277 ]
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;
}
}
Função switch q armazena sequencias
LazyDocker – Interface de Usuário em Tempo Real para o Docker
Instalando COSMIC no Linux Mint
Turbinando o Linux Mint: o poder das Nemo Actions
Inteligência Artificial no desenvolvimento de software: quando começar a usar?
[Resolvido] Algo deu errado ao abrir seu perfil
Usando o VNSTAT para medir o seu consumo de internet
Habilitando clipboard manager no ambiente COSMIC
Problema com som no laptop (5)
Quando vocês pararam de testar distros? (11)
Não estou conseguindo fazer funcionar meu Postfix na versão 2.4 no Deb... (2)









