gpt4 book ai didi

list - Netlogo 根据给定长度制作一个列表

转载 作者:行者123 更新时间:2023-12-05 00:20:15 25 4
gpt4 key购买 nike

我想根据给定长度的自身值创建一个列表。

例如,给定列表 [0 1]并且期望的列表长度为 7,输出将是 [0 1 0 1 0 1 0] .长度由 population 定义, 并由 slider 定义。我声明了变量 x那应该遍历列表。如果列表的长度小于 population 的值它应该设置为 0再次。

我用循环命令尝试了它,但它无限运行:

let x 0
loop[
if length exp-dif-li <= population[
ifelse x < length exp-dif-li[
set x 0]
[ set exp-dif-li lput item x exp-dif-li exp-dif-li
set x x + 1]
]
]
]

最佳答案

mod n-values 你的 friend 在这里吗:

to-report continue-list [ lst n ]
report n-values n [ item (? mod length lst) lst ]
end

示例用途:
observer> show continue-list [0 1] 7
observer: [0 1 0 1 0 1 0]
observer> show continue-list [0 1] 1
observer: [0]
observer> show continue-list [0 1 2 3 4] 22
observer: [0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1 2 3 4 0 1]

编辑:意识到谈论为什么会这样会很好! n-values n [ ... ]创建长度列表 n通过发送号码 0通过 n - 1给给定的记者。记者调用 ? (这是 NetLogo task 语法)。所以我们想继续重复原始列表中的项目。 mod 是一个非常好的重复循环数字的函数。 .一般情况下,项目 i新列表的项目应该是 i mod <length of original list> .所以,把这些放在一起, n-values n [ item (? mod length lst) lst ]创建一个长度为 n 的新列表通过重复列表中的项目 lst有必要的。

关于list - Netlogo 根据给定长度制作一个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34820820/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com