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

如何在MiniZinc输出中将整数主题编号替换为对应名称?

解决方案

不需要定义可变字符串数组,直接用固定的主题名称映射数组就能实现需求,步骤如下:

  1. 先定义一个与主题整数一一对应的名称数组,索引直接对应主题的整数值:
% 假设你的TOPICS集合是1..11,按顺序定义每个整数对应的主题名称
array[TOPICS] of string: topic_names = [
    "History",   % 对应主题1
    "Math",      % 对应主题2
    "Physics",   % 对应主题3
    "Chemistry", % 对应主题4
    "Biology",   % 对应主题5
    "Geography", % 对应主题6
    "Literature",% 对应主题7
    "Art",       % 对应主题8
    "Music",     % 对应主题9
    "PE",        % 对应主题10
    "Computer"   % 对应主题11
];
  1. 修改原有的输出代码,把选中的主题整数替换为对应的名称,再拼接成需要的格式:
output([
    join([
        name[ss, 1] ++ " " ++
        % 生成带方括号的主题名称列表,用逗号分隔
        "[" ++ join([topic_names[tt] | tt in TOPICS where topicSelected[ss, tt]], ", ") ++ "]\n"
        | ss in STUDENTS
    ])
]);

说明

  • 这种方式不需要提前为每个学生存储课程名称数组,直接在输出时通过索引映射动态生成字符串列表,符合MiniZinc的表达式风格。
  • 如果你的TOPICS集合不是从1开始(比如0..10),只需调整topic_names数组的索引对应关系即可,确保每个主题整数能正确匹配到对应的名称。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 02:10:36