def count(beta, m, a0, n)
f = lambda { |x| (beta * x) % m }
ar = [a0]
(n - 1).times { ar << f(ar.last) }
m = ar.inject(0, :+) / n.to_f
d = ar.inject(0) { |r, e| r + (e - m) ** 2 } / (n - 1)
[m, d]
end
beta, m, a0, n = (1..4).map { gets.to_i }
m, d = count(beta, m, a0, n)
puts "average: #{m}"
puts "dispersion: #{d}"
ZGVmIGNvdW50KGJldGEsIG0sIGEwLCBuKQogIGYgPSBsYW1iZGEgeyB8eHwgKGJldGEgKiB4KSAlIG0gfQoKICBhciA9IFthMF0KICAobiAtIDEpLnRpbWVzIHsgYXIgPDwgZihhci5sYXN0KSB9CiAgCiAgbSA9IGFyLmluamVjdCgwLCA6KykgLyBuLnRvX2YKICBkID0gYXIuaW5qZWN0KDApIHsgfHIsIGV8IHIgKyAoZSAtIG0pICoqIDIgfSAvIChuIC0gMSkKICBbbSwgZF0KZW5kCgpiZXRhLCBtLCBhMCwgbiA9ICgxLi40KS5tYXAgeyBnZXRzLnRvX2kgfQoKbSwgZCA9IGNvdW50KGJldGEsIG0sIGEwLCBuKQoKcHV0cyAiYXZlcmFnZTogI3ttfSIKcHV0cyAiZGlzcGVyc2lvbjogI3tkfSI=