You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Specman:如何生成含3个4与2个2的5元素列表?

正确实现方式

方法一:使用约束表达式

原代码缺少对列表长度的约束,且不符合e语言(Specman)的约束语法规则,以下是修正后的代码:

my_list : list of uint;
gen my_list keeping {
    // 约束列表长度为5
    my_list.size() == 5;
    // 指定值为4的元素数量是3
    my_list.count(it == 4) == 3;
    // 限制所有元素只能是2或4,避免出现其他无关值
    foreach (my_list[i]) {
        my_list[i] in [2, 4];
    }
};

方法二:直接构造后打乱顺序

如果不需要复杂的随机约束逻辑,也可以直接构造包含指定元素的列表,再打乱顺序实现随机排列:

my_list : list of uint;
gen my_list = list(4, 4, 4, 2, 2).shuffle();

这种方式更直观,能精准保证元素数量符合要求,同时满足随机排列的需求。

内容的提问来源于stack exchange,提问作者Zeev Gal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:04:50