Percolation/Mean run density: Difference between revisions
Content added Content deleted
Alextretyak (talk | contribs) (Added 11l) |
|||
Line 27: | Line 27: | ||
;See also |
;See also |
||
* [http://mathworld.wolfram.com/s-Run.html s-Run] on Wolfram mathworld. |
* [http://mathworld.wolfram.com/s-Run.html s-Run] on Wolfram mathworld. |
||
=={{header|11l}}== |
|||
{{trans|Python}} |
|||
<lang 11l>UInt32 seed = 0 |
|||
F nonrandom() |
|||
:seed = (1664525 * :seed + 1013904223) |
|||
R Int(:seed >> 16) / Float(FF'FF) |
|||
V (p, t) = (0.5, 500) |
|||
F newv(n, p) |
|||
R (0 .< n).map(i -> Int(nonrandom() < @p)) |
|||
F runs(v) |
|||
R sum(zip(v, v[1..] [+] [0]).map((a, b) -> (a [&] (-)b))) |
|||
F mean_run_density(n, p) |
|||
R runs(newv(n, p)) / Float(n) |
|||
L(p10) (1.<10).step(2) |
|||
p = p10 / 10 |
|||
V limit = p * (1 - p) |
|||
print(‘’) |
|||
L(n2) (10.<16).step(2) |
|||
V n = 2 ^ n2 |
|||
V sim = sum((0 .< t).map(i -> mean_run_density(@n, :p))) / t |
|||
print(‘t=#3 p=#.2 n=#5 p(1-p)=#.3 sim=#.3 delta=#.1%’.format( |
|||
t, p, n, limit, sim, I limit {abs(sim - limit) / limit * 100} E sim * 100))</lang> |
|||
{{out}} |
|||
<pre> |
|||
t=500 p=0.10 n= 1024 p(1-p)=0.090 sim=0.090 delta=0.0% |
|||
t=500 p=0.10 n= 4096 p(1-p)=0.090 sim=0.090 delta=0.1% |
|||
t=500 p=0.10 n=16384 p(1-p)=0.090 sim=0.090 delta=0.0% |
|||
t=500 p=0.30 n= 1024 p(1-p)=0.210 sim=0.210 delta=0.1% |
|||
t=500 p=0.30 n= 4096 p(1-p)=0.210 sim=0.210 delta=0.0% |
|||
t=500 p=0.30 n=16384 p(1-p)=0.210 sim=0.210 delta=0.0% |
|||
t=500 p=0.50 n= 1024 p(1-p)=0.250 sim=0.251 delta=0.2% |
|||
t=500 p=0.50 n= 4096 p(1-p)=0.250 sim=0.250 delta=0.1% |
|||
t=500 p=0.50 n=16384 p(1-p)=0.250 sim=0.250 delta=0.0% |
|||
t=500 p=0.70 n= 1024 p(1-p)=0.210 sim=0.211 delta=0.3% |
|||
t=500 p=0.70 n= 4096 p(1-p)=0.210 sim=0.210 delta=0.1% |
|||
t=500 p=0.70 n=16384 p(1-p)=0.210 sim=0.210 delta=0.0% |
|||
t=500 p=0.90 n= 1024 p(1-p)=0.090 sim=0.091 delta=1.0% |
|||
t=500 p=0.90 n= 4096 p(1-p)=0.090 sim=0.090 delta=0.0% |
|||
t=500 p=0.90 n=16384 p(1-p)=0.090 sim=0.090 delta=0.0% |
|||
</pre> |
|||
=={{header|C}}== |
=={{header|C}}== |