/usr/share/doc/ruby-gsl/examples/random/diffusion.rb is in ruby-gsl 2.1.0.3+dfsg1-1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | #!/usr/bin/env ruby
# 1-dimensional random work:
# This demonstrates M = 1000 trials of N = 6, 50 and 100 left-or-right steps.
# The distribution of the end points of the trials
# will be Gaussian of standard deviation sqrt(N).
require("gsl")
M = 1000
GSL::Rng.env_setup()
T = GSL::Rng::DEFAULT
seed = 2
rng = GSL::Rng.alloc(T, seed)
h = Array.new(3)
h[0] = GSL::Histogram.alloc(61, -30, 30)
h[1] = GSL::Histogram.alloc(61, -30, 30)
h[2] = GSL::Histogram.alloc(61, -30, 30)
i = 0
for n in [6, 50, 100] do
M.times do
s = 0
n.times do
ds = rng.get%2 == 0 ? 1 : -1
s += ds
end
h[i].increment(s)
end
i += 1
end
#GSL::graph(h[0].shift(250), h[1].shift(100), h[2])
GSL::graph(h[0] + 250, h[1] + 100, h[2])
|