一个Ada程序中的多个随机类型?

时间:2017-12-10 18:21:36

标签: random ada

在我的Ada程序中,我想创建两种随机类型:范围内的随机整数和我定义的随机类型。 在我的解释中,我有:

type servizio is (piscina, spa, entrambi);
type tempo is range 2..5;

我尝试按如下方式创建随机实例:

package servizio_random is new Ada.Numerics.Discrete_Random(servizio);
use servizio_random;
G : Generator;

package tempo_random is new Ada.Numerics.Discrete_Random(tempo);
use tempo_random;

我想使用随机的" servizio"在我的主要任务中,虽然"节奏"随机执行特定任务(task type cliente (ID: cliente_id; tipo: servizio);)。 我的问题是:怎么做?我需要多个发电机还是只需一个?我试图将所有代码放在主要任务中,但是我得到了生成器不可见的错误(可能是因为我放了两个"使用")。我还试着把#"节奏"在客户任务中随机并定义另一个生成器(在任务的范围内),但没有成功。 如何使用函数Random(G)并选择随机类型(" cliente"或" tempo")来使用?这是怎么回事? 谢谢。

1 个答案:

答案 0 :(得分:6)

多台发电机很好。

但您可能希望省略Use子句并使用限定名称,例如

G1 : servizio_random.Generator; 
G2 : tempo_random.generator;

然后根据需要从G1或G2获取随机数据。