[<< wikibooks] Ada Programming/Libraries/Ada.Numerics.Discrete Random
This language feature is available from Ada 95 on.

Ada.Numerics.Discrete_Random is a unit of the Predefined Language Environment since Ada 95.


== Specification ==
--                     Standard Ada library specification
--   Copyright (c) 2003-2018 Maxim Reznik 
--   Copyright (c) 2004-2016 AXE Consultants
--   Copyright (c) 2004, 2005, 2006 Ada-Europe
--   Copyright (c) 2000 The MITRE Corporation, Inc.
--   Copyright (c) 1992, 1993, 1994, 1995 Intermetrics, Inc.
--   SPDX-License-Identifier: BSD-3-Clause and LicenseRef-AdaReferenceManual
-- -------------------------------------------------------------------------

generic
   type Result_Subtype is (<>);
package Ada.Numerics.Discrete_Random is

   --  Basic facilities

   type Generator is limited private;

   function Random (Gen : Generator) return Result_Subtype;

   procedure Reset (Gen       : in Generator;
                    Initiator : in Integer);
   procedure Reset (Gen       : in Generator);

   --  Advanced facilities

   type State is private;

   procedure Save  (Gen        : in  Generator;
                    To_State   : out State);
   procedure Reset (Gen        : in  Generator;
                    From_State : in  State);

   Max_Image_Width : constant := implementation_defined;

   function Image (Of_State    : State)  return String;
   function Value (Coded_State : String) return State;

private

   pragma Import (Ada, State);
   pragma Import (Ada, Generator);

end Ada.Numerics.Discrete_Random;


== See also ==


=== Wikibook ===
Ada Programming/Libraries/Ada


=== External examples ===
Search for examples of Ada.Numerics.Discrete_Random in: Rosetta Code, GitHub or this Wikibook.
Search for any post related to Ada.Numerics.Discrete_Random in: Stack Overflow, comp.lang.ada or any Ada related page.


=== Ada Reference Manual ===


==== Ada 95 ====
A.5.2: Random Number Generation (Annotated)


==== Ada 2005 ====
A.5.2: Random Number Generation (Annotated)


==== Ada 2012 ====
A.5.2: Random Number Generation (Annotated)


=== Open-Source Implementations ===
FSF GNAT 

Specification: a-nudira.ads
Body: a-nudira.adbdrake 

Specification: numerics/a-nudira.ads
Body: numerics/a-nudira.adb