3v4l.org

run code in 300+ PHP versions simultaneously
<?php echo "Задача: написать random3() и random4() возвращающие равновероятные значения используя только random2()\n"; echo random2() . " - random 0|1\n"; echo random3() . " - random 0|1|2\n"; echo random4() . " - random 0|1|2|3\n\n"; function random2(): int { return random_int(0, 1); } /** * @return 0|1|2|3 */ function random4(): int { return random2() + 2 * random2(); } /** * @return 0|1|2 */ function random3(): int { $x = rr3x3(); return 1 + ("{$x[0]}{$x[1]}{$x[2]}" % 3); } //1,1,1 //1,1,2 //1,1,3 //всегда полная равнораспределенная комбинация 1-2-3 в каждом регистре function rr3x3(): array { $x1 = 1 + random2() + random2(); $x2 = 1 + random2() + random2(); $x3 = 1 + random2() + random2(); if ($x2 === 2) { $x2 = 1; } elseif ($x2 === 3) { $x2 = 2; } if ($x3 === 2) { $x3 = 3; } elseif ($x3 === 3) { $x3 = 2; } return [$x1, $x2, $x3]; }

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.0.110.0030.00516.80

preferences:
20.72 ms | 403 KiB | 5 Q