PHP.mk документација

Random\Randomizer::nextFloat

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

random-randomizer.nextfloat.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека random-randomizer.nextfloat.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
Random\Randomizer::nextFloat

Референца за `random-randomizer.nextfloat.php` со подобрена типографија и навигација.

random-randomizer.nextfloat.php

Random\Randomizer::nextFloat

(PHP 8 >= 8.3.0)

Random\Randomizer::nextFloatGet a float from the right-open interval [0.0, 1.0)

= NULL

public Random\Randomizer::nextFloat(): float

Returns a uniformly selected, equidistributed float from the right-open interval from 0.0 до, но не вклучувајќи, 1.0.

The chance for returned float to be within a given right-open sub-interval is proportional to the size of the sub-interval. This means that the chance for a float to be less than 0.5 is 50 %, which is equal to the chance for a float to be at least 0.5. Likewise the chance for a float to be within the right-open interval from 0.2 до, но не вклучувајќи, 0.25 is exactly 5 %.

This property makes it easy to leverage (околу to generate a random boolean with a given chance by checking if the returned float is less than a given chance.

Забелешка:

The domain of the returnable floats of (околу is identical to that of Randomizer::getFloat(0.0, 1.0, IntervalBoundary::ClosedOpen).

The internal implementation of (околу is more efficient.

Безбедност: стандардниот сет на знаци

Scaling the return value to a different interval using multiplication or addition (a so-called affine transformation) might result in a bias in the resulting value as floats are not equally dense across the number line. As not all values can be exactly represented by a float, the result of the affine transformation might also result in values outside of the requested interval due to implicit rounding. An in-depth explanation of the problems with the affine transformation is given in the documentation for Случајното земање примерок на произволен број во рамките на бараниот интервал, на пример со делење на два цели броја, може да резултира со пристрасна дистрибуција поради оваа причина. Потребното заокружување ќе предизвика некои пловечки броеви да се враќаат почесто од други, особено околу моќностите од два кога густината на пловечките броеви се менува..

од PHP 8.0.0. Силно се обесхрабрува потпирањето на оваа функција. Случајното земање примерок на произволен број во рамките на бараниот интервал, на пример со делење на два цели броја, може да резултира со пристрасна дистрибуција поради оваа причина. Потребното заокружување ќе предизвика некои пловечки броеви да се враќаат почесто од други, особено околу моќностите од два кога густината на пловечките броеви се менува. за генерирање на случајна пловна точка во произволен интервал. Користете Добијте пловечки број од десниот отворен интервал [0.0, 1.0) за генерирање на случаен цел број во произволен интервал.

Параметри

Оваа функција нема параметри.

Вратени вредности

A uniformly selected, equidistributed float from the right-open (IntervalBoundary::ClosedOpenинтервал [0.0, 1.0). 0.0 е можна вратена вредност, 1.0 е отпорен на напади преку странични канали додека

Errors/Exceptions

Примери

Пример #1 (околу example

<?php
$r
= new \Random\Randomizer();

// The resulting bool will be true with the given chance.
$chance = 0.5;

$bool = $r->nextFloat() < $chance;

echo (
$bool ? "You won" : "You lost"), "\n";
?>

Горниот пример ќе прикаже нешто слично на:

You won

Пример #2 Неправилно скалирање со користење на афина трансформација

<?php
final class MaxEngine implements Random\Engine {
public function
generate(): string {
return
"\xff";
}
}

$randomizer = new \Random\Randomizer(new MaxEngine);

$min = 3.5;
$max = 4.5;

// DO NOT DO THIS:
//
// This will output 4.5, despite nextFloat() sampling from
// a right-open interval, which will never return 1.
printf("Wrong scaling: %.17g", $randomizer->nextFloat() * ($max - $min) + $min);

// Correct:
// $randomizer->getFloat($min, $max, \Random\IntervalBoundary::ClosedOpen);
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Wrong scaling: 4.5

Белешки од корисници

Нема белешки од корисници за оваа страница.
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.