第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

向生成的對(duì)象添加屬性?

向生成的對(duì)象添加屬性?

ibeautiful 2023-08-22 17:18:15
我定義了一個(gè)生成器,它生成系統(tǒng)的泊松到達(dá)率。我希望每個(gè)生成的到達(dá)(客戶)都有一個(gè)隨機(jī)的(x,y),它向系統(tǒng)顯示到達(dá)客戶的位置。即我想生成系統(tǒng)的泊松到達(dá)率,其中每個(gè)到達(dá)都來自隨機(jī)位置。假設(shè) x 在 50 范圍內(nèi),y 在 60 范圍內(nèi)。我怎樣才能將其添加到以下代碼中?class Arrival(object):    def __init__(self, stream_defin, referrer):        self.service = stream_defin["service"]        self.arrival_rate = stream_defin["rate"]        self.referrer = referrer    def sim_init(self, env,sim_stats):        self.sim_stats = sim_stats        self.env = env        self.env.process(self.sim_arrival_generator())    def sim_arrival_generator(self):            i = 0            while True:                interarrival = spstats.expon(scale=1/self.arrival_rate).rvs()                yield self.env.timeout(interarrival)                i+=1
查看完整描述

1 回答

?
慕標(biāo)5832272

TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊

您的代碼引用了許多您沒有提供定義的對(duì)象和方法。這使得你很難準(zhǔn)確地知道你在尋找什么。另外,我不確定我是否理解你在概念上想要什么。但如果我對(duì)你的要求采取最簡(jiǎn)單的解釋,我的建議是:


我假設(shè)這條線當(dāng)前正在創(chuàng)建一個(gè)“到達(dá)”,它由interarrival變量引用:


interarrival = spstats.expon(scale=1/self.arrival_rate).rvs()

該值當(dāng)前似乎是延遲值,使得連續(xù)延遲的模式覆蓋泊松分布模式。此時(shí),您希望在代碼中創(chuàng)建延遲以及由x和y坐標(biāo)給出的隨機(jī)位置,而不僅僅是時(shí)間值,并將它們一起表示“到達(dá)”。


我建議創(chuàng)建一個(gè) Python 字典對(duì)象來表示每次到達(dá)。您可以這樣做:


interarrival = {

? ? 'delay': spstats.expon(scale=1 / self.arrival_rate).rvs(),

? ? 'position': {

? ? ? ? 'x': random.randint(self.min_x, self.max_x),

? ? ? ? 'y': random.randint(self.min_y, self.max_y)

? ? }

}


我采取了很多自由措施并填寫了您的代碼,以便它實(shí)際上可以運(yùn)行并“做某事”,盡管它所做的只是在到達(dá)之間延遲并打印每個(gè)到達(dá)的值。我假設(shè)您希望看到實(shí)際的延遲,因?yàn)槟暮艚衧elf.env.timeout和 因?yàn)槟陌l(fā)電機(jī)永遠(yuǎn)不會(huì)停止生成到達(dá)。如果沒有延遲或一些耗時(shí)的處理,此代碼將很快產(chǎn)生數(shù)千個(gè)您無法讀取的到達(dá)信息。


我將您的類從 重命名Arrival為Arrivals,因?yàn)槠渲械拇a處理到達(dá)流,而不是單個(gè)到達(dá),并且我想不出在不進(jìn)行更多更改的情況下更改它的好方法。我嘗試主要添加代碼,并盡可能少地更改您提供的代碼??紤]到這一切,我得出以下結(jié)論:


import scipy.stats as spstats

import random

import json

import time


class Arrivals(object):


? ? def __init__(self, stream_defin, referrer):

? ? ? ? self.service = stream_defin["service"]

? ? ? ? self.arrival_rate = stream_defin["rate"]

? ? ? ? self.min_x, self.max_x = stream_defin["min_x"], stream_defin["max_x"]

? ? ? ? self.min_y, self.max_y = stream_defin["min_y"], stream_defin["max_y"]

? ? ? ? self.referrer = referrer


? ? def sim_init(self, env, sim_stats):

? ? ? ? self.sim_stats = sim_stats

? ? ? ? self.env = env

? ? ? ? self.env.process(self.sim_arrival_generator())

? ? ? ? return self


? ? def sim_arrival_generator(self):

? ? ? ? ? ? i = 0

? ? ? ? ? ? while True:

? ? ? ? ? ? ? ? interarrival = {

? ? ? ? ? ? ? ? ? ? 'index': i,

? ? ? ? ? ? ? ? ? ? 'delay': spstats.expon(scale=1 / self.arrival_rate).rvs(),

? ? ? ? ? ? ? ? ? ? 'position': {

? ? ? ? ? ? ? ? ? ? ? ? 'x': random.randint(self.min_x, self.max_x),

? ? ? ? ? ? ? ? ? ? ? ? 'y': random.randint(self.min_y, self.max_y)

? ? ? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? yield self.env.timeout(interarrival)

? ? ? ? ? ? ? ? i += 1


class Env():

? ? def process(self, arrivals):

? ? ? ? for arrival in arrivals:

? ? ? ? ? ? # Do whatever needs to be done with each arrival

? ? ? ? ? ? print('Processing arrival: ')

? ? ? ? ? ? print(json.dumps(arrival, indent=4))


? ? def timeout(self, arrival):

? ? ? ? # Delay the arrival by its delay time before delivering for processing

? ? ? ? print("Delaying %2.2f seconds..." % (arrival['delay']))

? ? ? ? time.sleep(arrival['delay'])

? ? ? ? return arrival


def main():


? ? stream_defin = {

? ? ? ? 'service': 'service',


? ? ? ? 'rate': 0.5,


? ? ? ? 'min_x': 5,

? ? ? ? 'max_x': 50,

? ? ? ? 'min_y': 10,

? ? ? ? 'max_y': 60

? ? }


? ? stats = [] # a place to collect results, I assume

? ? Arrivals(stream_defin, 'referrer').sim_init(Env(), stats)


main()

這個(gè)東西會(huì)永遠(yuǎn)運(yùn)行,所以當(dāng)你想停止它時(shí),你必須按 CTRL-C 退出它。iterations添加配置值來限制迭代次數(shù)很容易。process()您可以將其添加到生成器本身,或者在達(dá)到指定的迭代計(jì)數(shù)時(shí)中斷該方法。


示例結(jié)果(如上所述,輸出中存在實(shí)際延遲):


Delaying 5.39 seconds...

Processing arrival:?

{

? ? "index": 0,

? ? "delay": 5.394974068076859,

? ? "position": {

? ? ? ? "x": 34,

? ? ? ? "y": 29

? ? }

}

Delaying 1.51 seconds...

Processing arrival:?

{

? ? "index": 1,

? ? "delay": 1.5095025601339542,

? ? "position": {

? ? ? ? "x": 24,

? ? ? ? "y": 24

? ? }

}

Delaying 1.48 seconds...

Processing arrival:?

{

? ? "index": 2,

? ? "delay": 1.4840036046166114,

? ? "position": {

? ? ? ? "x": 28,

? ? ? ? "y": 57

? ? }

}

Delaying 4.09 seconds...

Processing arrival:?

{

? ? "index": 3,

? ? "delay": 4.08649062133332,

? ? "position": {

? ? ? ? "x": 37,

? ? ? ? "y": 14

? ? }

}

...


查看完整回答
反對(duì) 回復(fù) 2023-08-22
  • 1 回答
  • 0 關(guān)注
  • 183 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)