我正在寻找某种算法的伪代码。伪代码的一行是这样的:

hs <- { (a, b) | a <- m, b <- l }

其中ml都是对象数组。

这到底是什么意思?我的解释是,它将每个m与每个l配对,并将它们存储在数组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)}

这是正确的思考方式吗?



根据上下文的要求,这是使用基于强化学习的轮盘选择来设计超启发式算法的伪代码。 ml分别包含一系列的突变试探法和本地搜索试探法。 hs旨在作为将这些启发式方法中的每一个配对在一起的数组,以便可以将它们依次应用于问题域。与之相同,先应用mutational heuristic m_i,然后应用local search heuristic l_j。尚不清楚它们是否应该按照我所描述的方式配对或以其他方式配对。

最佳答案

您认为是正确的,这是根据理解定义的列表,而(a, b)是具有ab值的集合。
更多信息:https://en.wikipedia.org/wiki/List_comprehension
haskell中的示例:https://wiki.haskell.org/List_comprehension

关于java - 伪码数组符号混淆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55905777/

10-11 15:22
查看更多