车库模拟器-生成随机泊松分布

时间:2018-12-12 15:14:18

标签: python processing jython

以下是我正在构建的车库模拟器的代码。我所坚持的是,能够产生将汽车驶至某个车库(garage1),直到该车库装满,然后将产生的汽车驶至第二个车库。

因为我希望我的模拟能够按时随机运行。我必须使用某种泊松分布以某种方式生成汽车。但是,如果第一个车库很忙,我似乎对如何生成它们以及如何将它们转移到另一个方面没有任何启发。 (在这里,我只有一个车库,这就是目标)

 class People(object):
       def __init__(self,c,xpos,ypos,speed,xgoal,ygoal):
           self.c=c
           self.xpos=xpos
           self.ypos=ypos
           self.speed=speed
           self.xgoal=xgoal
           self.ygoal=ygoal

      def show(self):
          #stroke(0)
          fill(self.c)
          rectMode(CENTER)
          rect(self.xpos,self.ypos,20,10)

    def drive(self):
        self.xpos=self.xpos + (self.xgoal - self.xpos)*0.05 * self.speed
        self.ypos=self.ypos + (self.ygoal - self.ypos)*0.05 * self.speed

    person1=People(color(255,0,0),35,280,1,120,10)
    person2=People(color(0,255,0),60,280,1,300,15)

def setup():
    size(450,320)

def draw():
    person1.show()
    person1.drive()
    person2.show()
    person2.drive()

2 个答案:

答案 0 :(得分:1)

Numpy可以从泊松分布中抽取随机样本。对于给定的样本均值和数量,您可以使用

import numpy as np

mean = 5
N = 100

samples = np.random.poisson(lam=mean, size=N)

答案 1 :(得分:0)

您标题中的问题的纯Python答案(似乎与您的总体问题没有多大关系):

$choferes = Chofer::orderBy('id', 'ASC')->get(['id`, ...])->pluck('full_name', 'id');

此答案使用以下事实:如果事件以一定的速率以指数分布的到达时间到达,则给定时间单位内的到达次数将以相同的速率遵循泊松分布。虽然它不如numpy解决方案快,但仍然相当快。我能够在不到一秒钟的时间内生成100,000个采样率为10的样本。