Gerar números aleatórios reais [RESOLVIDO]

1. Gerar números aleatórios reais [RESOLVIDO]

Samuel Leonardo
SamL

(usa XUbuntu)

Enviado em 17/11/2015 - 21:45h

Queria saber como faço para gerar número aleatório real e não pseudo-aleatório. É que preciso gerar aleatoriamente saídas com valores -1 ou 1 e usar o rand() não é suficiente porque trabalha com pseudo-"probabilidade", digo, a relação de saídas de -1 ou 1 é próximo de 50%, isto é, é um sistema de perfeito equilíbrio matemático. Mas estou trabalhando com IA e preciso gerar desequilíbrios nas saídas, tipo 20% -1 e 80% 1 e numa reexecução mudar sempre o equilíbrio sozinho, nesse caso só se fosse true random. Alguém conhece algum método em C ou C++ para gerar números realmente aleatórios?



  


2. MELHOR RESPOSTA

Paulo
paulo1205

(usa Ubuntu)

Enviado em 18/11/2015 - 03:01h

Veja http://www.cplusplus.com/reference/random/.

Logo de cara, ele mostra como fazer um exemplo de sorteio de um dado virtual com valores inteiros entre 1 e 6. Você pode pegar esse mesmo exemplo e trocar de int para double, e os limites inferior e superior por, respectivamente, -1.0 e 1.0, e já tem algo que lhe sirva. Mas não deixe de ler sobre cada tipo de gerador e de distribuição aleatória, para decidir quais se aplicam de modo melhor ao seu problema.

3. Re: Gerar números aleatórios reais [RESOLVIDO]

Carlos APC
Carlos_Cunha

(usa Linux Mint)

Enviado em 17/11/2015 - 22:34h

Entropia pode ajugar....(eu acho)
https://www.ibm.com/developerworks/community/blogs/752a690f-8e93-4948-b7a3-c060117e8665/entry/um_dev...

#-------------------------------------------------------------------------------------#

"Linux é algo que me fez ter Gosto pela Informática, se tornou um Vicio" - Carlos A. P. Cunha


4. Re: Gerar números aleatórios reais

Perfil removido
removido

(usa Nenhuma)

Enviado em 18/11/2015 - 02:15h

Considere o seguinte:

- Faça a geração de números aleatórios de 0 a 99
- Crie uma comparação com if() de modo que estabeleça a proporção que deseja. Por exemplo:

int a;
a = (int) número aleatório de 0 a 99 gerado;

if (a >=20)
return 1;
else
return -1;

Ou o contrário.

Se tiver problema com a criação da homogeneidade da geração dos números no intervalo de 0 a 99 retorne.

Quem quer que seja que considere métodos aritméticos para produzir números aleatórios está, claro, num estado de pecado. (John Von Neumann)

Original em https://pt.wikipedia.org/wiki/John_von_Neumann#Cita.C3.A7.C3.B5es
Mais em https://pt.wikipedia.org/wiki/Pseudoaleatoriedade
----------------------------------------------------------------------------------------------------------------
# apt-get purge ubuntu

http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



5. Re: Gerar números aleatórios reais [RESOLVIDO]

Uilian Ries
uilianries

(usa Linux Mint)

Enviado em 18/11/2015 - 14:21h


Utilize a random do C++11
Ela foi criada para este princípio

#include<random>

std::random








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts