Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 蒙特卡罗模拟_Python_Montecarlo - Fatal编程技术网

Python 蒙特卡罗模拟

Python 蒙特卡罗模拟,python,montecarlo,Python,Montecarlo,我用蒙特卡罗模拟来模拟保存系统。 我的模拟中有一些设备具有一定的失败率。假设失败率为1/100000,意味着每年100000台设备中有1台出现故障。如果设备出现故障,我将支付更换费用。但我不知道如何在模拟中随机捕捉设备故障。据我所知,我需要使用概率分布来模拟这种行为。但我不知道怎么做 随机包中的函数似乎提供了我没有的特定范围内的随机数。我也不知道这是什么样的分布 我希望这个问题对人们有意义。任何帮助都将不胜感激 最新情况: 是我干的 #/usr/bin/python import

我用蒙特卡罗模拟来模拟保存系统。 我的模拟中有一些设备具有一定的失败率。假设失败率为1/100000,意味着每年100000台设备中有1台出现故障。如果设备出现故障,我将支付更换费用。但我不知道如何在模拟中随机捕捉设备故障。据我所知,我需要使用概率分布来模拟这种行为。但我不知道怎么做

随机包中的函数似乎提供了我没有的特定范围内的随机数。我也不知道这是什么样的分布

我希望这个问题对人们有意义。任何帮助都将不胜感激

最新情况:

是我干的

    #/usr/bin/python
    import random 

    def main():
        count =0
        #fail rate is 1% of 100000, I need to do this probabilistically
        for _ in range(1,100000):
            x=random.random()
            if x <= 1.0/100000:
                count += 1

                print "x = "+str(x)+" fail device"
        print "device failed "+str(count)+"  times"

    if __name__ == '__main__':
        main()

谢谢timgeb的帮助!但是,我想知道这种行为是否与考虑1/100000的故障率相同?

每层(或任何时间单位)的故障设备数量遵循泊松分布。如果您在
m
年内拥有
n
个机组,且每年的故障率为
p
,则您可以使用
numpy.random.poisson
获得故障机组数量的随机数:

import numpy as np

n = 100000
m = 5
p = 1.0 / 100000

failed = np.random.poisson(n * m * p)
函数
np.random.poisson
将随机确定故障单元的数量。将最后一行运行几次,看看会发生什么


顺便说一句,纯python没有泊松分布,即使它可以用一些数学计算出来,比如说,高斯随机数。

不,它真的没有意义。发布一些代码,试着更具体地说明你在寻找什么。我希望这个问题是有意义的,真正的问题似乎被遗漏了!如果random.random()<1.0/100000:device.fail(),则没有问号
?我无法进一步提问。是因为这个问题吗?
import numpy as np

n = 100000
m = 5
p = 1.0 / 100000

failed = np.random.poisson(n * m * p)