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

Random 一个Ada程序中有多个随机类型?,random,ada,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;

在我的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;

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

多台发电机可以

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

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

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

多个生成器即可

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

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

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

请编辑您的问题以解释“在那里定义另一个生成器(在任务范围内),但没有成功”-它是如何失败的?什么是编译器错误消息?(失败的源代码也很好,否则我们只是猜测)请编辑您的问题,解释“定义另一个生成器(在任务的范围内),但没有成功”-它怎么没有成功?什么是编译器错误消息?(失败的源代码也不错,否则我们只是猜测而已)