NameException Posted June 23, 2006 at 10:40 AM Report #34382 Posted June 23, 2006 at 10:40 AM Boas, ppl.... Tou a desenvolver uma aplicação em JAVA, para simular o sorteio do euromilhões, mas não estou a conseguir gerar numeros aleatórios..... Alguem me pode dar uma dica?
Knitter Posted June 23, 2006 at 04:11 PM Report #34449 Posted June 23, 2006 at 04:11 PM Basta invocares o método Math.random() EX: gerar números até 10 Math.random() * 10 ... humm não me lembro se assim funciona sempre ?... tenho de ir ver, mas é a class Math que tens de usar 😉
Dabubble Posted June 23, 2006 at 07:20 PM Report #34479 Posted June 23, 2006 at 07:20 PM O gerador de numeros aleatorios que vem com java é mau (nao e la muito "aleatorio") e alem disso nao da para repetir um determinado sorteio. de quealquer forma e para uma coisa basica funciona e e como o Knitter disse Math.random(), isto gera um numero aleatorio (baseado no tempo do sistema) entre 0 e 1 depois so tens de multiplicar ou arrendondar para obteres numeros no intervalo que quiseres.
NameException Posted June 24, 2006 at 03:35 PM Author Report #34582 Posted June 24, 2006 at 03:35 PM Ok, mas dessa forma, saem numeros repetidos numa unica extracção.... Há forma de contornar esse problema...???
Knitter Posted June 26, 2006 at 02:42 PM Report #34890 Posted June 26, 2006 at 02:42 PM ..nao e la muito "aleatorio".. Em computadores não existe número aleatório nenhum que seja aleatório 😛 , mas tens razão o do Java não é grande coisa, agora que penso nisso nem sei se dá para mudar a semente dos números, hum... tenho de ver isso. ...saem numeros repetidos numa unica extracção.. Não percebi, cada vez que chamas o Math.random() dá o mesmo número? Eu usei em vários programas e nunca tive problemas, dentro de 'fors' ou 'whiles', etc, tens de ter atenção que o número gerado é entre 0 e 1, se o converteres para inteiro dá sempre 0!, mas já deves saber isso 🙂
Dabubble Posted June 26, 2006 at 09:34 PM Report #34987 Posted June 26, 2006 at 09:34 PM lol nao, ele quer e apenas retirar numeros diferentes sempre (tipo as bolas do euromilhoes), isso e uma questao de pensar uma beka... 😛
AndreSabino Posted June 28, 2006 at 09:39 PM Report #35360 Posted June 28, 2006 at 09:39 PM Olá a todos. É o meu primeiro post neste fórum e gostava de conseguir ajudar. =) Na realidade é possivel gerar números "verdadeiramente aleatórios", com base no tempo do relogio (ex: System.currentTimeMillis(); ) ou de outras formas. Ao contrário dos algoritmos de geração de numeros "psedo-aleatorios", nos quais aos reeniciar o programa ele gera numeros que já tinha gerado noutro fluxo de execução, desta forma isso não acontece. Podes "personalizar" algumas funções que já existem (procura "RandomGUID" no Google), por forma a que te sejam devolvidos apenas digitos (e não letras). Da mesma forma podes definir o tamanho daquilo que queres que seja devolvido (comprimento 2, 5, 10, ...). Provavelmente também é possivel definir o intervalo de número que queres( 0 < x < 50), no entanto, caso não seja possivel (o que acho ser o mais provável), podes sempre fazer uma verificação adicional (se o numero gerado está entre X e Y, tudo bem; caso contrario gero outro e verifico novamente;) Gostava que este primeiro post tivesse ajudado de alguma forma. Boa sorte para o trabalho! Abraço a todos! André
Knitter Posted June 30, 2006 at 11:18 AM Report #35627 Posted June 30, 2006 at 11:18 AM Na realidade é possivel gerar números "verdadeiramente aleatórios", com base no tempo do relogio (ex: System.currentTimeMillis() O que faz com que sejam mais variados mas não "verdadeiramente aleatórios". Neste caso o que se faz é mudar a base dos cálculos, a semente dos números, no entanto não deixam de ser número cálculados, um processador não tem capacidade de "inventar" números, apenas de os calcular e isso faz com que não sejam aleatórios. Mas Andre tens razão e acho que não falamos nisso, para se obter números mais variados é necessário usar o tempo de relógio como base. Peace.
TaoOo Posted June 30, 2006 at 05:52 PM Report #35697 Posted June 30, 2006 at 05:52 PM podes criar um vector com 50 posicoes, fazes random de uma posicao e eliminas essa posicao/numero, assim esse numero ja nao pode sair...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now