早上好,
我需要创建一个[0,1]
列表,其长度由用户定义(全局变量)。有一个简单的解决方案:
set listInd (list n-values numOfInd [random 2])
但是我需要确保,列表中只有三个,并且它们被放置在随机位置。有没有办法做到这一点?
问候。
答案 0 :(得分:3)
您可以创建3个随机数(索引),然后在此索引列表定义的位置上创建一个1
的列表:
to-report rand-list[n k]
let ind-list n-of k n-values n [?]
report n-values n [ifelse-value (member? ? ind-list) [1][0]]
end
用法:
show rand-list 10 3
; result:
; [0 1 0 0 0 0 1 0 0 1]
答案 1 :(得分:2)
bergant解决方案的另一种选择是收集所需数量的零和零,然后将它们随机混合:
to-report rand-list [n k]
let zeros n-values (n - k) [0]
let ones n-values k [1]
report shuffle sentence zeros ones
end