在这里,我主要讲一讲随机的内容。
首先,随机是为了产生更多的驱动,用rand来表示他们的随机属性,randc表示周期随机性,即在所有的只都赋过值后,随机值才有可能重复。我们可以这样理解,rand是54张扑克牌有放回抽取,每次的概率都一样,但是randc是54张牌无放回抽取。
注意,在约束时,要加入两个步骤:一rand/randc之后,先添加约束模板---constranit c { }。
二加入随机函数模板assert (p.randomize())
还有一点需要注意,关键词dist也可以在月书中产生随机数值的权重分布,这样会让某些值的选取机会要大于其他的值。有两点需要注意
在这里取0的权重时40个单位,1-3的每一个值的取值权重在60个单位。
在这里取0的权重时40个单位,1-3的这几个值的取值权重在60个单位(平分)。
在约束中还有个关键词,就是inside,表示变量属于某个值的集合。还可以使用$来指定最大值和最小值。
我们还可以使用constriant_mode()函数来打开或者关闭约束。也可以使用randomize() with来增加额外的约束。
当然,我们也可以对随机化的数组进行约束。