Números randômicos
Publicado por Davi das Chagas Neves 21/11/2008
[ Hits: 12.179 ]
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;
}
}
Simulador de Cronômetro com 2 digitos
Jogo do adivinha para descontrair..
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









