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

基于蕴含运算符的双向约束多结果实现及代码正确性咨询

问题解答

先看你提供的约束代码:

constraint c_test{
     (packet_size == LARGE) -> (Packet_length == 16); (Gap_betwn_packets == 2);
}

这段代码不符合你的需求,具体原因如下:

  • 分号把约束拆成了两个独立规则:
    1. 第一部分(packet_size == LARGE) -> (Packet_length == 16)是正确的条件约束,仅当packet_size等于LARGE时,Packet_length会被限定为16;
    2. 第二部分(Gap_betwn_packets == 2)是全局约束,不管packet_size是什么值,Gap_betwn_packets都会被强制设为2,这和你“仅当packet_size为LARGE时才要求Gap为2”的需求不匹配。

正确的写法是把两个变量的约束用逻辑与(&&)连接,放到箭头右侧,确保只有当packet_size == LARGE时,两个变量才会被约束:

constraint c_test{
     (packet_size == LARGE) -> (Packet_length == 16 && Gap_betwn_packets == 2);
}

修改后,当packet_size不等于LARGE时,Packet_length和Gap_betwn_packets不会被这部分约束限制,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 02:59:52