Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
26
Task/Subtractive-generator/Icon/subtractive-generator.icon
Normal file
26
Task/Subtractive-generator/Icon/subtractive-generator.icon
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
procedure main()
|
||||
every 1 to 10 do
|
||||
write(rand_sub(292929))
|
||||
end
|
||||
|
||||
procedure rand_sub(x)
|
||||
static ring,m
|
||||
if /ring then {
|
||||
m := 10^9
|
||||
every (seed | ring) := list(55)
|
||||
seed[1] := \x | ?(m-1)
|
||||
seed[2] := 1
|
||||
every seed[n := 3 to 55] := (seed[n-2]-seed[n-1])%m
|
||||
every ring[(n := 0 to 54) + 1] := seed[1 + (34 * (n + 1)%55)]
|
||||
every n := *ring to 219 do {
|
||||
ring[1] -:= ring[-24]
|
||||
ring[1] %= m
|
||||
put(ring,get(ring))
|
||||
}
|
||||
}
|
||||
ring[1] -:= ring[-24]
|
||||
ring[1] %:= m
|
||||
if ring[1] < 0 then ring[1] +:= m
|
||||
put(ring,get(ring))
|
||||
return ring[-1]
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue