PHP'deki pi değerini X ondalık sayılara kadar nasıl hesaplayabilirim.PHP'de belirli bir sayıdaki rakam nasıl hesaplanabilir?
4 ondalık noktaları
3,141
64 ondalık noktaları
3,141592653589793238462643383279502884197169399375105820974944592
PHP'deki pi değerini X ondalık sayılara kadar nasıl hesaplayabilirim.PHP'de belirli bir sayıdaki rakam nasıl hesaplanabilir?
4 ondalık noktaları
3,141
64 ondalık noktaları
3,141592653589793238462643383279502884197169399375105820974944592
PHP'de PI hesaplanıyor mu?
Neden M_PI
sabit kaldığımızı hesaplıyoruz?
M_PI
, 3.14159265358979323846
değerini içerir.
PI için 10000 ondalık basamak oldukça sayıdır.
bakınız: O PHP dahil PI sabit daha iyi olmayacak olsa http://www.php.net/manual/en/math.constants.php
Görünüşe göre, php.ini dosyasındaki 'pi()'/'M_PI 'hassasiyetini ayarlayabilirsiniz. Yine de 11^H 100K'ye gittiğinden emin değilim. :) http://php.net/manual/en/function.pi.php – deceze
Çok kötü, görünüşe göre sistemimde en az 48 tane var. :) – deceze
bunu işe yarıyor için teşekkürler! – mauris
PHP, 22/7 PI hesaplamak için eski bir yol olduğunu sürece bildiğim kadarıyla bir sayı tutun ama olamaz . Belki bir egzersiz olarak uzun bir PI dizisi çıkarmaya çalışıyorsunuzdur.
22/7, neredeyse doğru değil; yerli PHP sabiti, belirli bir sistemde mümkün olan en hassas kesinliktir. – Dan
Gönderilen kırık bağlantı @Konamiman için kaynak bulundu.
Sonuçlarla karşılaştırıldı: http://www.angio.net/pi/digits/50.txt ve bunlar aynı.
// Source: http://mgccl.com/2007/01/22/php-calculate-pi-revisited
function bcfact($n)
{
return ($n == 0 || $n== 1) ? 1 : bcmul($n,bcfact($n-1));
}
function bcpi($precision)
{
$num = 0;$k = 0;
bcscale($precision+3);
$limit = ($precision+3)/14;
while($k < $limit)
{
$num = bcadd($num, bcdiv(bcmul(bcadd('13591409',bcmul('545140134', $k)),bcmul(bcpow(-1, $k), bcfact(6*$k))),bcmul(bcmul(bcpow('640320',3*$k+1),bcsqrt('640320')), bcmul(bcfact(3*$k), bcpow(bcfact($k),3)))));
++$k;
}
return bcdiv(1,(bcmul(12,($num))),$precision);
}
echo bcpi(1000);
Pi'yi Chudnosky serisi tarafından hesaplayabilirsiniz. Çok yüksek bir ram olan bir sunucunuz varsa, Pi'yi birçok ondalık basamağa kolayca hesaplayabilirsiniz. Belirli bir ondalık basamağa yönlendirmek istiyorsanız, çok büyük bir sayıya kadar olan çabaları artırın ve substr numarasını istediğiniz ondalık basamağa kısaltın. Bu işlemin çok yavaş olduğunu düşünüyorsanız, google'da arama yaparak pi değeri alabilirsiniz.
Bu, seri yavaşça birleştikçe bunu yapmak için çok yavaş bir yoldur. –
@Salixalba Gördüğünüz gibi, orada yazdım '... çok ram olan bir sunucu ...'. –
http://en.wikipedia.org/wiki/Leibniz_formula_for_%CF%80 adresinden Dizinin doğrudan özetini kullanarak dec - 10 doğru ondalık basamağın hesaplanması yaklaşık 5.000.000.000 terim gerektirir. Soruna daha fazla ram atmak, http://en.wikipedia.org/wiki/Approximations_of_%CF%80 adresinde olduğu gibi farklı bir formül denemek için çok daha iyi olmayacaktır. –
ana sorun 100000 ondalık sayıya kadar pi'nin değerini hesaplamaktır ... – d3vdpro
Nitekim '3' ondalık basamakta değil (ondalık basamaktan sonra bir basamak, '.'), bu sayılar Sırasıyla sadece 3 ve 63 ondalık hane vardır. – ajp15243