一个 Ada 程序中有多个随机类型?
Multiple random types in one Ada program?
在我的 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);
) 中使用 "tempo" 随机。
那么我的问题是:如何做到这一点?我需要多台发电机还是只需要一台?我试图将所有代码放在主要任务中,但我得到了生成器不可见的错误(可能是因为我放了两个 "use")。我还尝试将 "tempo" random 放在客户端任务中,并在那里定义另一个生成器(在任务范围内),但没有成功。
如何使用随机类型("cliente" 或 "tempo")的函数 Random(G) 和 select 来使用?这是如何工作的?
谢谢。
多个生成器就可以了。
但您可能希望省略 Use 子句并使用限定名称,例如
G1 : servizio_random.Generator;
G2 : tempo_random.generator;
然后根据需要从 G1 或 G2 获取随机数据。
在我的 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);
) 中使用 "tempo" 随机。
那么我的问题是:如何做到这一点?我需要多台发电机还是只需要一台?我试图将所有代码放在主要任务中,但我得到了生成器不可见的错误(可能是因为我放了两个 "use")。我还尝试将 "tempo" random 放在客户端任务中,并在那里定义另一个生成器(在任务范围内),但没有成功。
如何使用随机类型("cliente" 或 "tempo")的函数 Random(G) 和 select 来使用?这是如何工作的?
谢谢。
多个生成器就可以了。
但您可能希望省略 Use 子句并使用限定名称,例如
G1 : servizio_random.Generator;
G2 : tempo_random.generator;
然后根据需要从 G1 或 G2 获取随机数据。