Dün konuştuğumuz Monte Carlo tümlev alma (http://ddili.org/forum/post/10353) yöntemi hakkında birisi bir Python programı yazmış. Sonra Riemann yönteminin daha hızlı ve daha doğru sonuçlar verdiğinden bahsetmiş.
Ben de hızlıca bir D kodu yazayım dedim.
import std.stdio, std.random;
void main()
{
int icerdekiNoktalar = 0, toplamNokta = 0;
Random cekirdek;
for (int i = 0; i < 100; ++i)
{
auto x = uniform(0.0L, 1.0L, cekirdek);
auto y = uniform(0.0L, 1.0L, cekirdek);
++toplamNokta;
writeln("toplam nokta", toplamNokta);
writeln("x,y ", x," ", y);
if (((x * x) + (y * y)) <= 1)
{
icerdekiNoktalar++;
writeln(icerdekiNoktalar);
}
}
writeln("icerdeki ", icerdekiNoktalar);
writeln("toplam ", toplamNokta);
float pisayisi = cast (float) (icerdekiNoktalar/toplamNokta);
writeln("Pi sayisi = ", pisayisi);
}
Ama nedense pi sayısının çeyreğini bulurken sonuç 0 çıkıyor.
Sanırım biraz da D çalışmanın zamanı gelmiş ;)
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]