This Web
All Webs
brayden.org
Other
$done = false; while (!$done) { $u1 = rand() / getrandmax(); $u2 = rand() / getrandmax(); // Set V1 = 2U1 - 1, V2 = 2U2 -1, S = V1^2 + V2^2 $v1 = 2*$u1 -1; $v2 = 2*$u2 -1; $s = $v1 * $v1 + $v2 * $v2; // If S > 1, return to step 1 if ($s <= 1) $done = true; } // Now return the independent unit normals $x = sqrt(-2 * log($s) / $s) * $v1; $y = sqrt(-2 * log($s) / $s) * $v2;