Server : Apache System : Linux host44.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64 User : vapecompany ( 2719) PHP Version : 7.4.33 Disable Function : NONE Directory : /home/vapecompany/demo.vapecompany.com.bd/vendor/fakerphp/faker/src/Faker/Provider/ |
Upload File : |
<?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; } }