创建具有随机值的代币

问题描述 投票:0回答:2

在下面显示的 petrinet 中,我在 input2 中创建具有随机值的令牌时遇到问题,因为 rand() 函数似乎不起作用。还有其他方法吗?

petri-net cpn-tools
2个回答
1
投票

CPN ML 为颜色集提供随机颜色选择。您可以使用

SmallInt.ran()
表示 [1,10] 范围内的随机整数。

REAL
不是一个小的颜色集,如果你要使用
REAL.ran()
你会得到一个例外。

我猜您的示例的合适解决方案是使用

1.0/real(SmallInt.ran())

我手头没有 CPN 工具的副本,因此请谨慎对待上述建议。


0
投票

我知道我迟到了,但这可能对其他人有帮助:

我认为您正在尝试生成特定范围内的随机数,例如 0.0-1.0。为此,您可以按照以下步骤操作:

  1. 定义带有范围的colset。例如:

    colset RNDREAL = real with 0.0..1.0;

  2. 这个 colset

    RNDREAL
    将包含从 0.0 到 1.0 的所有值。由于这个范围内有无数个数字,因此您无法将它们全部可视化。

要可视化较小的范围,请将类型从

real
更改为
int
并给出任意范围,例如:

`colset RNDREAL = int with 1..500;` 

此后,

RNDREAL
将包含从 1 到 500 的所有值。

  1. 然后您可以使用
    RNDREAL.ran()
    函数从给定范围内获取随机数。

您可以在屏幕截图中看到示例 CPNTools showing how to generate random real numbers within custom range

© www.soinside.com 2019 - 2024. All rights reserved.