Random Ada:随机播种
如何为Ada.Numerics.Discrete_Random设定离散值种子?我看到这样的代码: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
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”作为生成器的变量名,这导致了混淆。