Subtractive generator: Difference between revisions

(→‎{{header|Perl 6}}: Fix syntax errors, update)
Line 1,228:
506003769
380969305</pre>
 
=={{header|Phix}}==
{{trans|C#}}
<lang Phix>sequence state = repeat(0,55)
integer pos
constant MAX = 1e9
function cap(integer n)
if n<0 then n += MAX end if
return n
end function
 
function next()
pos = mod(pos,55)+1
integer temp = cap(state[pos]-state[mod(pos+30,55)+1])
state[pos] = temp
return temp
end function
 
procedure init(integer seed)
sequence temp = repeat(0,55)
temp[1] = cap(seed)
temp[2] = 1
for i=3 to 55 do
temp[i] = cap(temp[i-2]-temp[i-1])
end for
for i=1 to 55 do
state[i] = temp[mod(34*i,55)+1]
end for
pos = 55
for i=55 to 219 do
{} = next()
end for
end procedure
init(292929)
for i=220 to 222 do
printf(1,"%d: %d\n",{i,next()})
end for</lang>
{{out}}
<pre>
220: 467478574
221: 512932792
222: 539453717
</pre>
 
=={{header|PicoLisp}}==
7,820

edits