Random\Randomizer::nextFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::nextFloat — Отримує число з точкою, що плаває, з відкритого праворуч інтервалу [

Опис

public Random\Randomizer::nextFloat(): float

Повертає рівномірно обране рівнорозподілене число з плаваючою точкою з відкритого праворуч інтервалу від 0.0до1.0але не включаючи саму одиницю.

Імовірність того, що повернене число з плаваючою точкою виявиться в межах заданого відкритого праворуч підінтервалу пропорційна розміру підінтервалу. Тобто ймовірність того, що число з плаваючою точкою буде менше 0.5, дорівнює 50%, що дорівнює ймовірності того, що число з плаваючою точкою буде не менше 0.5. Аналогічно, ймовірність того, що число з точкою, що плаває, опиниться в межах відкритого праворуч інтервалу від 0.2до0.25, Не включаючи останнє значення, - дорівнює 5%.

Ця властивість робить метод Random\Randomizer::nextFloat() простим засобом для генерації випадкового логічного значення із заданою ймовірністю, перевіряючи, чи менше число, що повертається з плаваючою точкою заданої ймовірності.

Зауваження :

Область визначення методів, що повертаються. Random\Randomizer::nextFloat() чисел з плаваючою точкою ідентична області визначення методу, викликаного з аргументами Randomizer::getFloat(0.0, 1.0, IntervalBoundary::ClosedOpen)

Внутренняя реализация методаRandom\Randomizer::nextFloat() ефективніша.

Застереження

Масштабування значення, що повертається до іншого інтервалу через множення або додавання (т. н. афінне перетворення) іноді призводить до зміщення результуючого значення оскільки числа з плаваючою точкою не однаково щільні по числовій прямій. Оскільки не всі значення можуть бути точно представлені числом з плаваючою точкою, результат афінного перетворення іноді повертає значення за межами запитаного інтервалу через неявне округлення . Детальне пояснення проблем, пов'язаних з афінним перетворенням, дано в документації до методу Random\Randomizer::getFloat()

Для генерації випадкового числа з плаваючою точкою в довільному інтервалі краще віддати перевагу методу Random\Randomizer::getFloat(). Для генерації випадкового цілого числа у довільному інтервалі користуються методом Random\Randomizer::getInt()

Список параметрів

Ця функція не має параметрів.

Значення, що повертаються

Повертає рівномірно обране, рівнорозподілене число з плаваючою точкою з відкритого праворуч (IntervalBoundary::ClosedOpen) інтервалу [0.0, 1.0). Значение0.0 — можливе значення, що повертається, значення 1.0 - Ні.

Помилки

Приклади

Приклад #1 Приклад использования методаRandom\Randomizer::nextFloat()****

Loading...

Висновок наведеного прикладу буде схожим на:

You won

Приклад #2 Неправильне масштабування через афінне перетворення

Loading...

Результат виконання наведеного прикладу:

Неправильное масштабирование: 4.5

Дивіться також