function heapsort($N) { $ary = array(0); for ($i = 1; $i <= $N; $i++) { $ary[$i] = gen_random(1); } heapsort_r($N, $ary); }
function selectRandom(&$a) { $r = gen_random(1); $hi = sizeof($a); for ($i = 0; $i < $hi; $i++) { if ($r < $a[$i][1]) { return $a[$i][0]; } } return $a[$hi - 1][0]; }
function heapsort($N) { global $LAST; define("IM", 139968); define("IA", 3877); define("IC", 29573); $LAST = 42; for ($i = 1; $i <= $N; $i++) { $ary[$i] = gen_random(1); } heapsort_r($N, $ary); printf("%.10f\n", $ary[$N]); }
function makeRandomFasta(&$genelist, $n) { $width = 60; $lines = (int) ($n / $width); $pick = str_repeat('?', $width) . "\n"; $randoms = array_fill(0, $width, 0.0); global $last; // full lines for ($i = 0; $i < $lines; ++$i) { gen_random($last, $randoms); $j = 0; foreach ($randoms as $r) { foreach ($genelist as $k => $v) { if ($r < $v) { break; } } $pick[$j++] = $k; } echo $pick; } // last, partial line $w = $n % $width; if ($w !== 0) { $randoms = array_fill(0, $w, 0.0); gen_random($last, $randoms); $j = 0; foreach ($randoms as $r) { foreach ($genelist as $k => $v) { if ($r < $v) { break; } } $pick[$j++] = $k; } $pick[$w] = "\n"; echo substr($pick, 0, $w + 1); } }
<?php /* $Id: random.php,v 1.2 2004/04/21 14:23:45 tim Exp $ http://www.bagley.org/~doug/shootout/ tweaked by tim */ define("IM", 139968); define("IA", 3877); define("IC", 29573); $LAST = 42; function gen_random($max) { global $LAST; return $max * ($LAST = ($LAST * IA + IC) % IM) / IM; } $N = 1000000; while ($N--) { gen_random(100.0); } printf("%.9f\n", gen_random(100.0));
$ra[1] = $rra; return; } } $i = $l; $j = $l << 1; while ($j <= $ir) { if ($j < $ir && $ra[$j] < $ra[$j + 1]) { $j++; } if ($rra < $ra[$j]) { $ra[$i] = $ra[$j]; $j += $i = $j; } else { $j = $ir + 1; } } $ra[$i] = $rra; } } $N = $argc == 2 ? $argv[1] : 10000; for ($i = 1; $i <= $N; $i++) { $ary[$i] = gen_random(1); } /* for ($i=0; $i<$N; $i++) { printf("%4d %.15f\n", $i, $ary[$i]); } */ heapsort($N, $ary); printf("%.10f\n", $ary[$N]);
<?php // Taken from the Zend benchmark. Shredding should take care of the compound assignment define("IM", 139968); define("IA", 3877); define("IC", 29573); $LAST = 42; function gen_random($n) { global $LAST; return $n * ($LAST = ($LAST * IA + IC) % IM) / IM; } for ($i = 0; $i < 20; $i++) { $x = gen_random($i); echo "{$x}\n"; }
function makeRandomFasta3(&$genelist, $n) { $width = 60; $lines = (int) ($n / $width); $pick = ""; $randoms = array_fill(0, $width, 0.0); global $last; // full lines for ($i = 0; $i < $lines; ++$i) { $pick = ""; gen_random($last, $randoms); $j = 0; foreach ($randoms as $r) { $pick .= $genelist[(int) ($r * 100)]; } echo $pick . "\n"; } // last, partial line $w = $n % $width; if ($w !== 0) { $pick = ""; $randoms = array_fill(0, $w, 0.0); gen_random($last, $randoms); $j = 0; foreach ($randoms as $r) { $pick .= $genelist[(int) ($r * 100)]; } echo $pick . "\n"; } }