Здравствуйте, в приведенном ниже коде, не могу понять, почему при формировании объекта Random, в параметре указывается 47. Если я правильно понял, то в параметре указывается начальная точка последовательности случайных чисел. Но тогда почему на выводе числа которые меньше 47?
Random.next
возвращает по сути всегда целое число, вычисляемое по формуле
(seed * 0x5DEECE66DL + 0xBL) & ((1L << 48) - 1)
Точная формула не столь важна, важно что новое число зависит только от значения seed
. Запомним это.
Конструктор принимает один параметр - seed
(или вообще без параметра, тогда используется текущее время).
Этот seed
будет использован для вычисления следующего числа, но сам он не будет возвращён в качестве случайного.
Теперь как вообще генерируются дробные числа.
Согласно документации
public float nextFloat() {
return next(24) / ((float)(1 << 24));
}
Т.е. мы создаём целое число, обнуляем некоторое число бит, и делим на 2^24
. Вы можете получить любое число вида N/2^24, 0<=N<2^24
. Это объясняет почему числа в диапазоне [0,1).
Из жава дока
public float nextFloat()
Returns the next pseudorandom, uniformly distributed {@code float} * value between {@code 0.0} and {@code 1.0} from this random * number generator's sequence.
Вы не правильно поняли - в параметре показывается не точка отсчёта, а количество начиная с 0, т.е. от 0 до 46 включительно. В программировании отсчёт всегда ведётся с нуля. Что бы начался отсчёт с 47 нужен код такого типа - пример:
import java.util.Random;
public class rand {
public static void main(String[] args) {
Random rand = new Random();
int a = 47 + rand.nextInt(100 - 47);//отсчёт начнётся с 47 до 99 включительно
System.out.print(a);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Как можно заменить текущий фрагмент в ViewPager? Например, нужно заменить класс фрагмента, причем из другого класса, как можно это реализовать?
Добрый день, я работаю из Spring Data JPA и возникла такая ситуацияДопустим в базе данных хранится информация про группу в университете(ид группы,...
Идет потеря кадров при отрисовке объектов с помощью Swing, хотел поинтересоваться как можно оптимизировать код или использовать более подходящие...