Random 让随机数目的海龟做点什么?

Random 让随机数目的海龟做点什么?,random,netlogo,procedures,Random,Netlogo,Procedures,我有两个海龟程序,但我需要一个随机数的海龟做其中一个程序,另一个随机数的海龟做其他程序,在同等的部分 假设我有40只海龟,我有以下程序: to move ask turtles [ rt random-float 90 - random-float 90 fd 1 ] end to bounce ask turtles [ if [pcolor] of patch-at dx 400 = white [ set heading (- heading) ] if [pcol

我有两个海龟程序,但我需要一个随机数的海龟做其中一个程序,另一个随机数的海龟做其他程序,在同等的部分

假设我有40只海龟,我有以下程序:

to move
 ask turtles [
 rt random-float 90 - random-float 90
 fd 1
 ]
end

 to bounce 
ask turtles 
[
if [pcolor] of patch-at dx 400 = white [
  set heading (- heading)
 ]
 if [pcolor] of patch-at 400 dy = white [
  set heading (180 - heading)
]
]
end 
我想做的是让20只随机的海龟做弹跳的程序,另外20只随机的海龟做移动的程序。或者,40只海龟将随机进行这两个过程中的任何一个,但没有任何海龟同时进行这两个过程


我知道这有点困难,但我认为这是可以做到的。有什么建议吗?

这是我能想到的最简单的方法:

let bouncers n-of 20 turtles
ask turtles [
  ifelse member? self bouncers
    [ bounce ]
    [ move ]
]

“海龟随机数”这个短语有很多解释。赛斯的方法允许你精确地控制这两个过程中每一个过程有多少只海龟。也就是说,固定数量的随机海龟

如果您希望它始终近似,但不一定等于以下示例中海龟的某个比例0.4,因此每只海龟以给定的概率随机决定,那么您可以:

ask turtles [
ifelse-value random-float 1 < 0.4
    [ bounce ]
    [ move ]
]

注意:这些代码都没有经过测试,因此如果抛出错误,请进行注释或编辑。

您能澄清替代方案吗?或者,40只海龟随机进行这两个过程中的任何一个,但没有一只海龟同时进行这两个过程。你的意思是,如果40只海龟中的每一只都执行两个程序中的一个,并且只执行其中一个程序,这是可以接受的吗?是的,也可以,但最好是我正在寻找同等比例的海龟执行这两个程序
let bouncers n-of (1 + random count turtles) turtles