如何对具有预定组大小的组进行排序?

How do I sort a group with predetermined group sizes?

我目前正在研究样本池方法,现在,我一直在研究如何按预定大小对组进行排序。

到目前为止,我能够

1) 列出所需的小组人数,然后

2) 使用 "one-of" 组大小对组进行排序 ,写法如下:

`to assign-by-size
  ask hardticks [ set my-group -1]
  let unassigned hardticks
  let current 0
  let groupsize (list 4 9 13 20 20)
  while [any? unassigned]
  [ask n-of (min (list one-of groupsize (count unassigned))) unassigned
  [set my-group current]
  set current current + 1
  set unassigned unassigned with [my-group = -1]
]
end`

但是,由于one-of只允许你在组内选择一个随机数,它并没有像我希望的那样执行,即按照列表的顺序对组进行排序,或者至少使用all列表中预定组大小的一次。

我应该使用哪个函数或代码来让它按我想要的方式工作?

我认为这样的事情可能会奏效。我可能有语法错误。这个想法是 首先使用您已有的 "counter" 索引从 groupsize 列表中拉出下一个项目,然后当它用完时,返回到您的旧测试。

顺便说一下,我对你使用 "sort" 这个词感到很困惑,因为我是美国人,对我来说 "sort" 意味着放入一个序列,但我怀疑你的意思是英国俚语,意思是 "populate a group."

 while [any? unassigned]
  [

      if-else current < length groupsize [
          ask n-of (min (list (item current groupsize) (count unassigned))) unassigned
          [set my-group current]
      ]
      [ 
          ask n-of (min (list one-of groupsize (count unassigned))) unassigned
          [set my-group current]
      ]



      set current current + 1
      set unassigned unassigned with [my-group = -1]
  ]