Jump to content

Percolation/Mean run density: Difference between revisions

Added EchoLisp
No edit summary
(Added EchoLisp)
Line 226:
t=500, p=0.90, n= 4096, p(1-p)=0.09000, sim=0.09047, delta=0.5%
t=500, p=0.90, n=16384, p(1-p)=0.09000, sim=0.09007, delta=0.1%</pre>
 
=={{header|EchoLisp}}==
<lang scheme>
;; count 1-runs - The vector is not stored
(define (runs p n)
(define ct 0)
(define run-1 #t)
(for ([i n])
(if (< (random) p)
(set! run-1 #t) ;; 0 case
(begin ;; 1 case
(when run-1 (set! ct (1+ ct)))
(set! run-1 #f))))
(// ct n))
;; mean of t counts
(define (truns p (n 1000 ) (t 1000))
(// (for/sum ([i t]) (runs p n)) t))
(define (task)
(for ([p (in-range 0.1 1.0 0.2)])
(writeln)
(writeln '🔸 'p p 'Kp (* p (- 1 p)))
(for ([n '(10 100 1000)])
(printf "\t-- n %5d → %d" n (truns p n)))))
</lang>
{{out}}
<pre>
(task) ;; t = 1000
🔸 p 0.1 Kp 0.09
-- n 10 → 0.171
-- n 100 → 0.0974
-- n 1000 → 0.0907
🔸 p 0.3 Kp 0.21
-- n 10 → 0.2642
-- n 100 → 0.2161
-- n 1000 → 0.2105
🔸 p 0.5 Kp 0.25
-- n 10 → 0.2764
-- n 100 → 0.2519
-- n 1000 → 0.2503
🔸 p 0.7 Kp 0.21
-- n 10 → 0.2218
-- n 100 → 0.2106
-- n 1000 → 0.2098
🔸 p 0.9 Kp 0.09
-- n 10 → 0.087
-- n 100 → 0.0894
-- n 1000 → 0.0905
</pre>
 
=={{header|Fortran}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.