ПредишенСледващото

Генератор на случайни числа в Java - връх академия

  • писмено отбор Vertex академия. Надяваме се, че ще бъде полезна за вас. Приятно четене!
  • това е една от статиите от нашето "Ръководство на Java"

Генериране на случайни числа в Java - важна и необходима тема. В действителност, трябва да го безброй пъти.

  • при попълване масив от случайни числа
  • когато размесването тесте карти
  • изборът на случаен елемент от последователността
  • и т.н.

Нека да се справят с тази тема.

Има няколко начина как да се генерират случайни числа. В тази статия ще разгледаме генерирането на номера с помощта на Math.random ()

Библиотеките на класа на Java имат java.lang пакет, който е с клас по математика, а на класа Math има произволен метод (). Вижте. В изображението по-долу помощ.

Генератор на случайни числа в Java - връх академия

Така че, на всеки Math.random повикване (), чрез използване на специален алгоритъм (за дадена инструкция) се генерира от произволен номер. Възможно ли е да се предскаже кой номер ще бъде генериран? Теоретично е възможно, но е много трудно да се направи. И тъй като все още има малък шанс да се предскаже какво ще се генерира броят алгоритъм, такива номера не се наричат ​​случайни и псевдослучайни.

Трябва да знаете, 3 неща:

1. подразбиране Math.random () генерира произволни реални числа в интервала [0, 1), т.е. от нула до един, включително изключително.

"Само до 1" - това означава, че math.random () не може да генерира числото 1. Това ли е 0999 - това е, който и да е число по-малко 1.Poprobuyte изпълня този код тук и се убедете сами на компютъра си, че конзолата ще се появи реална цифри от 0 до всеки номер по-малко от 1.

Стъпка №1: диапазон [0, 1) се умножава по 3. Съответно,

Долна граница: 0 * 3 = 0

Горната граница на 1 * 3 = 3

Получени диапазон [0; 3). След скобата 3 кръг. Това означава, че три от диапазона, т.е. максималния брой, който може да бъде генериран в този диапазон е 2,999. С една дума - ние се занимаваме с реални (дробни) номера.

Стъпка №2: защо използваме (инт) преди math.random () * 3. Дробна част е отрязана и получаваме интервала [0, 2]

Ако ние считаме нашата формула, то няма да промени много.

Ако реалното число и горната лента включва б - [а; б]:

(Math.random () * (б - а + 1) + на

Ако дори само цели числа:

(Int) ((Math.random () * (б - а + 1) + а)

Ако е необходимо да се генерира число в интервала [3, 4]. Моля, имайте предвид, че след 4 квадратна скоба. Това означава, че ние се интересуваме от, към гамата включва броя 4. Как да го направя? Ето как:

Стъпка №1: диапазон [0, 1) се умножава по 2. Съответно,

Долна граница: 0 * 2 = 0

Горна граница: 1 * 2 = 2

Получени диапазон [0; 2). Конзолата 2 след като броят на кръг. Това означава, че две от границите, т.е. максималния брой, който може да бъде генериран в този диапазон е 1,999. Това означава, че ние се занимаваме с реална (частична) номер.

Стъпка №2: защо използваме (инт) преди math.random () * 2. Дробна част е отрязана и получаваме интервала [0, 1]. Забележка - гама вече е под номер 1, включително.

Етап №3: до интервала [0; 1] добавим 3. Съответно,

Долна граница: 0 + 3 = 3

Горна граница: 1 + 3 = 4

Получена е нова гама [3, 4]

(Int) (Math.random () * (4 - 3 + 1) + 3) => (междинно съединение) (Math.random () * 2 + 3)

Цяло число в интервала [-100; 100] (100 включително):

Свързани статии

Подкрепете проекта - споделете линка, благодаря!