Longhorn PHP 2023 - Call for Papers

# lcg_value

(PHP 4, PHP 5, PHP 7, PHP 8)

lcg_valueCombined linear congruential generator

### Description

lcg_value(): float

lcg_value() returns a pseudo random number in the range of (0, 1). The function combines two CGs with periods of 2^31 - 85 and 2^31 - 249. The period of this function is equal to the product of both primes.

Caution

This function does not generate cryptographically secure values, and must not be used for cryptographic purposes, or purposes that require returned values to be unguessable.

If cryptographically secure randomness is required, the Random\Randomizer may be used with the Random\Engine\Secure engine. For simple use cases, the random_int() and random_bytes() functions provide a convenient and secure API that is backed by the operating system’s CSPRNG.

### Parameters

This function has no parameters.

### Return Values

A pseudo random float value between 0.0 and 1.0, inclusive.

• rand() - Generate a random integer
• mt_rand() - Generate a random value via the Mersenne Twister Random Number Generator

### User Contributed Notes 3 notes

11
rok kralj gmail com
16 years ago
``` An elegant way to return random float between two numbers:<?phpfunction random_float (\$min,\$max) {   return (\$min+lcg_value()*(abs(\$max-\$min)));}?> ```
12
daniel dot baulig at gmx dot de
13 years ago
``` Choose your weapon:<?phpfunction mt_randf(\$min, \$max){    return \$min + abs(\$max - \$min) * mt_rand(0, mt_getrandmax())/mt_getrandmax(); }function lcg_randf(\$min, \$max){    return \$min + lcg_value() * abs(\$max - \$min);}function randf(\$min, \$max){    return \$min + rand(0,getrandmax()) / getrandmax() * abs(\$max - \$min);}?> ```
-20
Linndows
6 years ago
``` I think best example...<?php\$x=0;while(\$x<=5){\$x++;echo lcg_value()+\$x."\n";   }     echo lcg_value()+\$x-(2*lcg_value()); echo "\n";?> ``` 