permutation - 在 Netlogo 中计算组合

标签 permutation netlogo

我正在尝试在 NetLogo 中生成一个列表,其中包含几个不同的唯一 0 和 1 列表。1 的数量取决于 j,列表的数量取决于 i。例如,我有以下几行代码:

if (i = 4) and (j=1) [set mylist = [[1 0 0 0][0 1 0 0][0 0 1 0][0 0 0 1]]]
if (i = 4) and (j=2) [set mylist = [[1 1 0 0][1 0 1 0][1 0 0 1][0 1 1 0][0 1 0 1] [0 0 1 1]]]

我编写的目的是使 0 和 1 的所有可能的唯一组合在列表中不出现任何重复。我希望能够做同样的事情,但 i 和 j 的值都在 1-10 之间。是否有一个如何执行此操作的示例,或者任何人都知道我可以检查的某种伪代码算法?谢谢!

最佳答案

to-report combinations [_m _s]
  if (_m = 0) [ report [[]] ]
  if (_s = []) [ report [] ]
  let _rest butfirst _s
  let _lista map [? -> fput item 0 _s ?] combinations (_m - 1) _rest
  let _listb combinations _m _rest
  report (sentence _lista _listb)
end

;convert location list to bitstring
to-report bitstring [#len #locs]
  report map [? -> ifelse-value (member? ? #locs) [1] [0]] range #len
end

;try it out:
to-report test-values [#i #j]  ;e.g., test-values 4 2
  report map [? -> bitstring #i ?] combinations #j range #i
end

关于permutation - 在 Netlogo 中计算组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48387942/

相关文章:

netlogo - 限制代理可以建立的链接数量

algorithm - Netlogo,创建避障算法

netlogo - 代表其他海龟内存的海龟变量

arrays - 用 DI 序列排列排列

c++ - 有没有更好的方法来排列字符串?

python - Python中具有一些固定元素的排列方法

Python递归设置值排列字典

python - 具有 4 个基本运算的表达式组合

netlogo - 从 netlogo 中的日期和时间中提取日期

wav - 写入 netlogo 中的声音文件 : or how to tune netlogo