Решено: math.random между 1 и 10

Последна актуализация: 09/11/2023
Автор: Java SourceTrail

Изчисляването на произволни числа може да бъде основна част от много приложения, особено в разработването на игри, статистическо моделиране и симулации. Програмният език Java предоставя вградена функция за генериране на такива произволни числа. Една функция е Math.random(), въпреки че генерира двойни стойности между 0.0 (включително) и 1.0 (изключително). За генериране на произволни цели числа в определен диапазон, като например от 1 до 10, са необходими допълнителни стъпки. Тази статия разглежда създаването на произволни числа между 1 и 10 в Java с помощта на Math.random().

Генериране на произволни числа с Math.random()

Функцията Math.random() на Java връща положителна двойна стойност, която е по-голяма или равна на 0.0 и по-малка от 1.0. Тези стойности се генерират псевдослучайно, което означава, че генерирането им следва определен алгоритъм, но изглежда произволно за потребителя.

double randomValue = Math.random();

Въпреки това, за да генерираме цяло число между 1 и 10, не можем директно да използваме Math.random(). Вместо това трябва да манипулираме двойната стойност, върната от Math.random().

Метод за генериране на случайни цели числа между 1 и 10

За да симулираме създаването на произволно цяло число между 1 и 10, ще умножим резултата от Math.random() по 10, ще добавим 1 и след това ще преобразуваме резултата в цяло число (тъй като Math.random() връща двойно) . Привеждането към цяло число съкращава десетичната част, като по този начин ни дава цяло число.

int randomInteger = (int)(Math.random() * 10 + 1);

Този код работи, защото Math.random() предоставя стойност от 0.0 до малко под 1.0. Когато умножите това по 10, това разширява обхвата до 0.0 до малко под 10.0. Добавянето на 1 измества този диапазон от 1.0 до малко под 11.0.

Разбивка стъпка по стъпка

Нека се потопим по-дълбоко в това как работи кодът:

1.

  • Извиква се функцията Math.random(), която връща псевдослучайно двойно по-голямо или равно на 0.0 и по-малко от 1.0.
  • След това тази двойна стойност се умножава по 10. Сега двойната стойност пада между 0.0 и 10.0, все още по-малко от 10.0
  • Добавяме 1 към резултата. Двойната стойност сега е между 1.0 и 11.0, все още по-малко от 11.0.
  • Накрая извършваме преобразуване на типа, за да преобразуваме двойната стойност в цяло число. Това съкращава десетичната част и получаваме цяло число между 1 и 10.

Библиотеки и функции, свързани с генерирането на произволни числа

В допълнение към Math.random(), Java предлага други начини за генериране на произволни числа като класа Random и класа ThreadLocalRandom. Класът Random предоставя методи за генериране на псевдослучайни числа от различни типове, като int, double, long, float, Boolean и др. Класът ThreadLocalRandom предоставя методи за генериране на псевдослучайни числа при едновременни сценарии.

Вградените функции и класове на Java предлагат цялостни решения за генериране на произволни числа, отговарящи на различни нужди и приложения.

Подобни публикации: