15 lines
329 B
Tcl
15 lines
329 B
Tcl
proc pi {samples} {
|
|
set i 0
|
|
set inside 0
|
|
while {[incr i] <= $samples} {
|
|
if {sqrt(rand()**2 + rand()**2) <= 1.0} {
|
|
incr inside
|
|
}
|
|
}
|
|
return [expr {4.0 * $inside / $samples}]
|
|
}
|
|
|
|
puts "PI is approx [expr {atan(1)*4}]\n"
|
|
foreach runs {1e2 1e4 1e6 1e8} {
|
|
puts "$runs => [pi $runs]"
|
|
}
|