Random Ada:随机播种

Random Ada:随机播种,random,ada,Random,Ada,如何为Ada.Numerics.Discrete_Random设定离散值种子?我看到这样的代码: declare type Rand_Range is range 25..75; package Rand_Int is new Ada.Numerics.Discrete_Random(Rand_Range); seed : Rand_Int.Generator; Num : Rand_Range; begin Rand_Int.Reset(seed); Num

如何为Ada.Numerics.Discrete_Random设定离散值种子?我看到这样的代码:

declare
   type Rand_Range is range 25..75;
   package Rand_Int is new Ada.Numerics.Discrete_Random(Rand_Range);
   seed : Rand_Int.Generator;
   Num : Rand_Range;
begin
   Rand_Int.Reset(seed);
   Num := Rand_Int.Random(seed);
   Put_Line(Rand_Range'Image(Num));
end;
它使用“种子”值为“Rand_Int”种子,但我找不到任何关于实际设置种子值的说明。还是我完全错了?我想将种子值设置为一个可以控制的数字(如4或5),以便观察测试结果


谢谢

将第二个
整数
参数传递给
重置
。这里是
启动器

Rand_Int.Reset(seed, initiator);
Ada是为数不多的几种语言之一。用它!另外

另一个注意事项:代码中的变量名
seed
是一个糟糕的选择。像
state
generator
这样的选择会更好


注意:Ada在很多方面都是一门非常好的语言。人们抱怨非常强大、详细的类型系统。然后,当系统完成并运行时,他们会神秘地忘记将其归因于Ada。重要的不利因素是IDE的库可用性和成熟度。

Rand_Int.Reset(seed)
不会使用
seed
的值为生成器设定种子;相反,它在一些时间相关的问题中设置种子的状态<代码>种子是一个生成器,而不是种子;它有一个隐藏的内部状态,控制对
Rand\u Int.Random
的调用行为。谢谢。我发现示例中的标签使用“seed”作为生成器的变量名,这导致了混淆。