阿达:播种随机

时间:2014-01-20 22:00:12

标签: 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 := Rand_Int.Random(seed);
   Put_Line(Rand_Range'Image(Num));
end;

使用“种子”值对“Rand_Int”进行种子处理,但是我找不到任何关于实际设置种子值的指令。或者我完全看错了吗?我想将种子值设置为我可以控制以观察测试结果的数字(如4或5)。

谢谢!

1 个答案:

答案 0 :(得分:6)

将第二个Integer参数传递给Reset。这是initiator

Rand_Int.Reset(seed, initiator);

Ada是少数使用complete, detailed reference manual and rationale available free of charge的语言之一。用它!此外,here is the more recent Ada version's standard

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

注意:Ada在许多方面都是一种非常好的语言。人们抱怨非常强大,详细的类型系统。然后当系统完成并且它首先运行时尝试几个错误,他们神秘地忘记将其归因于Ada。重要的缺点是图书馆的可用性和IDE的成熟度。