Toon posts:

[j2me] (java dus) Random getal tussen x ... y

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hellow, kan iemand me vertellen hoe ik onder j2me een random getal krijg tussen x en y?
Nu krijg ik negatieve stuff en grote getallen en dat wil ik nie :'( zal vast iets simpels zijn maar ik kan het niet vinden......

Verwijderd

code:
1
2
int blaat;
blaat = x + (Math.random() * y);

Verwijderd

Topicstarter
als ik Math.random gebruik krijg ik steeds een error van MIDP:
ALERT: Invalid constant pool entry
Execution completed successfully
94618 bytecodes executed
8 thread switches
312 classes in the system (including system classes)
780 dynamic objects allocated (34896 bytes)
2 garbage collections (17344 bytes collected)
Total heap size 500000 bytes (currently 478352 bytes free)
code:
1
    x=1 + (Math.random() * 10);

geeft error:
possible loss of precision
code:
1
    x=1 + (int)(Math.random() * 10);

geeft dus de crash als ik de midlet draai

  • Tarin
  • Registratie: Januari 2001
  • Laatst online: 21:58

Tarin

Just plain weird.

Een random getal tussen de x en de y is iig
x + (y-x)*randomgetal..

Ik fiets op de accu van m'n iPod :) | Specs | Pics | Elektro: NL / EN


  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

code:
1
2
3
4
Random r = new Random();
int i = r.nexInt();
i = Math.abs(i); // maak positief
if (i == Integer.MIN_VALUE) i = Integer.MAX_VALUE;

Je getal is nu positief (en net iets minder random) tussen 0 en Integer.MAX_VALUE. Verkleinen naar (y-x) moet niet zo'n probleem zijn (bedenk wel dat je geen floats hebt in J2ME!)

edit: ik neem aan dat je gebruik maakt van MIDP en niet een andere J2ME profiel.. MIDP heeft als het goed is geen Math.random(), het heeft nl. ook geen floats.

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com