php 算法2 TIEA211计算pi蒙特卡罗方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 算法2 TIEA211计算pi蒙特卡罗方法相关的知识,希望对你有一定的参考价值。

<?php 

$points = [];
for ($i = 0; $i < 1000; $i++) {
	$x = rand(0, 500);
	$y = rand(0, 500);
	$points[] = $x . ',' . $y;
}

$hits = 0;
$center_x = 250;
$center_y = 250;
foreach ($points as $point) {
	$pieces = explode(',', $point);
	$x = (int)$pieces[0];
	$y = (int)$pieces[0];

	$distance = sqrt(($x - $center_x) ** 2 + ($y - $center_y) ** 2); 
	if ($distance <= 250) $hits++;
}

$_pi = 4 * $hits / count($points);
$pi = pi();
$error = round($pi - $_pi, 3);

echo 'osumia: ' . $hits . '/1000, pii: ' . $_pi . ', virhe: ' . $error . "\n";

以上是关于php 算法2 TIEA211计算pi蒙特卡罗方法的主要内容,如果未能解决你的问题,请参考以下文章

算法之美--1.蒙特卡洛方法计算pi

使用蒙特卡罗模拟多线程计算 Pi

初识蒙特卡罗算法

数学模型:4. 蒙特卡罗模拟

蒙特卡洛方法计算pi

Python蒙特卡罗计算圆周率PI——Numpy性能优化