java - 伪代码数组符号混淆
问题描述
我正在查看算法的一些伪代码。伪代码的一行是这样的:
hs <- { (a, b) | a <- m, b <- l }
Wherem
和l
都是对象数组。
这到底是什么意思?我的解释是,它将每个m
与每个配对l
并将它们存储在 array 中hs
,如下所示:
假设m = {m1,m2}
和l = {l1,l2,l3,l4}
。
然后 hs = {(m1,l1),(m1,l2),(m1,l3),(m1,l4),(m2,l1),(m2,l2),(m2,l3),(m2,l4)}
这是正确的思考方式吗?
根据要求,这是用于设计超启发式的伪代码,使用基于强化学习的轮盘赌选择。m
并l
分别包含一系列变异启发式和局部搜索启发式。hs
旨在作为将这些启发式中的每一个配对在一起的数组,以便它们可以按顺序应用于问题域。如中,应用mutational heuristic m_i
,然后local search heuristic l_j
。只是不清楚它们是否应该按照我描述的方式或其他方式配对。
解决方案
你认为是正确的,这是一个通过理解定义的列表,并且(a, b)
是一个带有a
andb
值的集合。
更多信息:https ://en.wikipedia.org/wiki/List_comprehension
haskell 中的示例:https ://wiki.haskell.org/List_comprehension
推荐阅读
- python - 更新 QSqlRelationalTableModel 中的相关表
- javascript - 隐藏空标签如果它没有内容
- excel - 在 VBA 中使用集合和 V 类字典
- python - 在不安装的情况下导入 Python 库
- laravel - 使用具有表之间关系的 Eloquent 模型进行 CRUDE 操作
- c# - 使用 IIS 时未触发 CancellationToken
- javascript - 定期在网站上显示和更新来自 JSON-URL 的值
- c# - ASP NET Core SignalR 从另一个服务响应客户端
- twilio - Twilio Stream 仅在收到呼叫时
- python - TensorFlow 版本 2 和 BatchNorm 折叠中的量化感知训练