Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -1,11 +0,0 @@
|
|||
package Subtractive_Generator is
|
||||
type State is private;
|
||||
procedure Initialize (Generator : in out State; Seed : Natural);
|
||||
procedure Next (Generator : in out State; N : out Natural);
|
||||
private
|
||||
type Number_Array is array (Natural range <>) of Natural;
|
||||
type State is record
|
||||
R : Number_Array (0 .. 54);
|
||||
Last : Natural;
|
||||
end record;
|
||||
end Subtractive_Generator;
|
||||
|
|
@ -1,33 +0,0 @@
|
|||
package body Subtractive_Generator is
|
||||
|
||||
procedure Initialize (Generator : in out State; Seed : Natural) is
|
||||
S : Number_Array (0 .. 1);
|
||||
I : Natural := 0;
|
||||
J : Natural := 1;
|
||||
begin
|
||||
S (0) := Seed;
|
||||
S (1) := 1;
|
||||
Generator.R (54) := S (0);
|
||||
Generator.R (33) := S (1);
|
||||
for N in 2 .. Generator.R'Last loop
|
||||
S (I) := (S (I) - S (J)) mod 10 ** 9;
|
||||
Generator.R ((34 * N - 1) mod 55) := S (I);
|
||||
I := (I + 1) mod 2;
|
||||
J := (J + 1) mod 2;
|
||||
end loop;
|
||||
Generator.Last := 54;
|
||||
for I in 1 .. 165 loop
|
||||
Subtractive_Generator.Next (Generator => Generator, N => J);
|
||||
end loop;
|
||||
end Initialize;
|
||||
|
||||
procedure Next (Generator : in out State; N : out Natural) is
|
||||
begin
|
||||
Generator.Last := (Generator.Last + 1) mod 55;
|
||||
Generator.R (Generator.Last) :=
|
||||
(Generator.R (Generator.Last)
|
||||
- Generator.R ((Generator.Last - 24) mod 55)) mod 10 ** 9;
|
||||
N := Generator.R (Generator.Last);
|
||||
end Next;
|
||||
|
||||
end Subtractive_Generator;
|
||||
|
|
@ -1,14 +0,0 @@
|
|||
with Ada.Text_IO;
|
||||
with Subtractive_Generator;
|
||||
|
||||
procedure Main is
|
||||
Random : Subtractive_Generator.State;
|
||||
N : Natural;
|
||||
begin
|
||||
Subtractive_Generator.Initialize (Generator => Random,
|
||||
Seed => 292929);
|
||||
for I in 220 .. 222 loop
|
||||
Subtractive_Generator.Next (Generator => Random, N => N);
|
||||
Ada.Text_IO.Put_Line (Integer'Image (I) & ":" & Integer'Image (N));
|
||||
end loop;
|
||||
end Main;
|
||||
Loading…
Add table
Add a link
Reference in a new issue