Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > случайное число (1......100)


Автор: aaa25 14.1.2011, 14:42
как задать случайное целое число из диапазона (0...100)  ?   
я нашел такой пример, но не знаю , как им воспользоваться. он без ошибок (wтк не выдает ошибки).
может  кто посоветует как им пользоваться, или другой рабочий вариант....

    public class MyRandom extends Random {

    private static final int limit = 64;

    public int nextInt() {
        if ((limit & -limit) == limit) {
            return (int) ((limit * (long) next(31)) >> 31);
        }

        int bits, val;

        do {
            bits = next(31);
            val = bits % limit;
        } while (bits - val + (limit - 1) < 0);

        return val;
    }
}

Автор: _sten_ 15.1.2011, 18:56
а (int)Math.random()*100 не подойдет?

Автор: math64 17.1.2011, 15:50
_sten_,  в j2me этого нет.
Если CLDC 1.1, можно random.nextInt(100);
В CLDC 1.0 так:
Код

Random random = new Random ();
int nextInt (int n) {
  return (int)((((long)random.nextInt ()&0xFFFF) * n) >>> 32);
}

Или как было указано в первом сообщении - это адаптированный кусок из Random для J2SE.
Но лучше брать старшие биты числа полученного по nextInt() - они более случайны, повторная выборка существенна только для больших чисел около 10000 и теоретически в этом цикле можно крутиться бесконечно.

Добавлено через 4 минуты и 7 секунд
PS: n=101 для диапазона 0...100 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)