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

Random\Engine::generate

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

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

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

random-engine.generate.php

Random\Engine::generate

(PHP 8 >= 8.2.0)

Random\Engine::generateГенерира случајност

= NULL

public Random\Engine::generate(): string

Враќа случајност и го поместува стационарниот дел на алгоритмот за еден чекор.

Случајноста е претставена со бинарна низа што содржи случајни бајти. Оваа репрезентација овозможува недвосмислено толкување на случајните битови генерирани од алгоритмот, на пример за да се приспособат различни големини на излез што ги користат различни алгоритми.

Алгоритмите што работат на цел број вредности треба да го вратат целиот број во редослед на бајти од мал крај, на пример со искористување на pack() функција со P форматниот код. Интерфејсот на високо ниво обезбеден од Random\Randomizer ќе ги толкува вратените случајни бајти како потпишани цели броеви од мал крај ако е потребна нумеричка репрезентација.

Силно се препорачува секој бит од вратената низа да биде униформно и независно избран, бидејќи некои апликации бараат случајност базирана на ниво на бит за да работат правилно. На пример, линеарните конгруентни генератори често генерираат случајност од понизок квалитет за помалку значајните битови на вратениот цел број и затоа не би биле соодветни за апликации што бараат случајност на ниво на бит.

Параметри

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

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

Низа што не е празна и содржи случајни бајти.

Забелешка: На Random\Randomizer работи со потпишани 64-битни цели броеви внатрешно. Ако вратената низа содржи повеќе од 64 бита (8 бајти) случајност, прекумерните бајти ќе бидат игнорирани. Други апликации можеби ќе можат да обработат повеќе од 64 бита одеднаш.

Errors/Exceptions

Примери

Пример #1 s фрлени од example

<?php
/**
* Implements a Linear Congruential Generator with modulus 65536,
* multiplier 61 and increment 17 returning an 8 Bit integer.
*
* Note: This engine is suitable for demonstration purposes only.
* Linear Congruential Generators generally generate low
* quality randomness and this specific implementation has
* a very short 16 Bit period that is unsuitable for
* almost any real-world use case.
*/
final class LinearCongruentialGenerator implements \Random\Engine
{
private
int $state;

public function
__construct(?int $seed = null)
{
if (
$seed === null) {
$seed = random_int(0, 0xffff);
}

$this->state = $seed & 0xffff;
}

public function
generate(): string
{
$this->state = (61 * $this->state + 17) & 0xffff;

return
pack('C', $this->state >> 8);
}
}

$r = new \Random\Randomizer(
new
LinearCongruentialGenerator(seed: 1)
);

echo
"Lucky Number: ", $r->getInt(0, 99), "\n";
?>

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

Lucky Number: 4

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

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

Прелистувај сродни теми и функции.

На оваа страница

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

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

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

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

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