如何使用离散值播种 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)以观察测试结果。
谢谢!
最佳答案
将第二个 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
是一个糟糕的选择。 state
或 generator
之类的选择会更好。
注意:Ada 在许多方面确实是一门非常好的语言。人们提示非常强大、详细的类型系统。然后当系统完成并首次运行时尝试了一些错误,他们神秘地忘记将其归因于 Ada。显着的缺点是库的可用性和 IDE 的成熟度。
关于random - Ada:随机播种,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21245051/