![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/vendor/fakerphp/faker/src/Faker/Provider/ |
<?php namespace Faker\Provider; class Biased extends Base { /** * Returns a biased integer between $min and $max (both inclusive). * The distribution depends on $function. * * The algorithm creates two doubles, x ∈ [0, 1], y ∈ [0, 1) and checks whether the * return value of $function for x is greater than or equal to y. If this is * the case the number is accepted and x is mapped to the appropriate integer * between $min and $max. Otherwise two new doubles are created until the pair * is accepted. * * @param int $min Minimum value of the generated integers. * @param int $max Maximum value of the generated integers. * @param callable $function A function mapping x ∈ [0, 1] onto a double ∈ [0, 1] * * @return int An integer between $min and $max. */ public function biasedNumberBetween($min = 0, $max = 100, $function = 'sqrt') { do { $x = mt_rand() / mt_getrandmax(); $y = mt_rand() / (mt_getrandmax() + 1); } while (call_user_func($function, $x) < $y); return (int) floor($x * ($max - $min + 1) + $min); } /** * 'unbiased' creates an unbiased distribution by giving * each value the same value of one. * * @return int */ protected static function unbiased() { return 1; } /** * 'linearLow' favors lower numbers. The probability decreases * in a linear fashion. * * @return int */ protected static function linearLow($x) { return 1 - $x; } /** * 'linearHigh' favors higher numbers. The probability increases * in a linear fashion. * * @return int */ protected static function linearHigh($x) { return $x; } }