Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.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_Standard Deviation - Fatal编程技术网

Python 蒙特卡罗标准差

Python 蒙特卡罗标准差,python,montecarlo,standard-deviation,Python,Montecarlo,Standard Deviation,您好,我试图用蒙特卡罗方法解决python中的一个问题。问题如下: 一家公司提供笔记本电脑服务。对其记录的审查表明,服务呼叫所花费的时间是正态分布的,平均为60分钟,标准偏差为20分钟。 A.有多大比例的服务电话不到一小时? B超过50分钟的服务电话占多大比例? C超过80分钟的服务电话占多大比例? D如果一个服务呼叫花费了一个多小时,超过70分钟的概率是多少? D在四个电话的随机样本中,平均通话时间少于一个50分钟的概率是多少 我的解决方案是: import math import rando

您好,我试图用蒙特卡罗方法解决python中的一个问题。问题如下: 一家公司提供笔记本电脑服务。对其记录的审查表明,服务呼叫所花费的时间是正态分布的,平均为60分钟,标准偏差为20分钟。 A.有多大比例的服务电话不到一小时? B超过50分钟的服务电话占多大比例? C超过80分钟的服务电话占多大比例? D如果一个服务呼叫花费了一个多小时,超过70分钟的概率是多少? D在四个电话的随机样本中,平均通话时间少于一个50分钟的概率是多少

我的解决方案是:

import math
import random
calls = 4
sa = 0
sb = 0
sc = 0
sd = 0
sd2 = 0
se = 0
sumMin = 0
for i in range (1,calls):
    r = 60 + 20.* random.randint(1, calls)
    #print(r)
    if r<60:
        sa = sa + 1
        break
    if r > 50:
        sb = sb + 1
        break

    if r > 80:
        sc = sc + 1
        break

    if r > 60:
        sd2 = sd2 + 1
        break

    if r > 60:
        sd = sd + 1
        break
    break
sumMin = sumMin + r
meanCallsl = sumMin / calls
if meanCallsl < 50:
    se = se + 1
虽然我不确定结果如何,你能给我一些建议吗


谢谢你

首先,如果你想得到关于堆栈溢出的建议,你应该解释一下是什么让你怀疑你的代码。事实上,你只得到0和1应该在你的主要职位。这是因为您不应该在代码中写入中断

我假设您以前在MATLAB中编程过,您需要编写端到端的for循环和if测试。在python中,这是不必要的,因为代码的缩进定义了for循环和if测试的代码块

此外,您从未在代码中测试70分钟。我想你想这样回答问题d

此外,为什么要使用代码
random.randint(1,调用)
?报告说

random.randint(a,b)


返回一个随机整数N,这样a首先,如果您需要关于堆栈溢出的建议,您应该真正解释是什么让您怀疑您的代码。事实上,你只得到0和1应该在你的主要职位。这是因为您不应该在代码中写入中断

我假设您以前在MATLAB中编程过,您需要编写端到端的for循环和if测试。在python中,这是不必要的,因为代码的缩进定义了for循环和if测试的代码块

此外,您从未在代码中测试70分钟。我想你想这样回答问题d

此外,为什么要使用代码
random.randint(1,调用)
?报告说

random.randint(a,b)


返回一个随机整数N,这样a“我不确定结果”是什么意思?您是否收到奇怪的结果?首先,
random.randint
不会给出随机分布的数字,而是均匀分布的数字,因此您的MC计算得出的分布是错误的。还有,你使用蒙特卡罗方法有什么特别的原因吗?这可以很容易地用高斯分布的CDF来解决,它是用Scipy实现的。我必须用蒙特卡罗来实现,正如我在大学的教授所说。我得到的结果是奇数,只有0和1。。我想是因为你说的,我用错了函数。我对python不太熟悉。你说的“我不确定结果”是什么意思?您是否收到奇怪的结果?首先,
random.randint
不会给出随机分布的数字,而是均匀分布的数字,因此您的MC计算得出的分布是错误的。还有,你使用蒙特卡罗方法有什么特别的原因吗?这可以很容易地用高斯分布的CDF来解决,它是用Scipy实现的。我必须用蒙特卡罗来实现,正如我在大学的教授所说。我得到的结果是奇数,只有0和1。。我想是因为你说的,我用错了函数。我对python不太熟悉。
pa = 100 * sa/ calls
print (pa)

pb = 100 * sb / calls
print(sb)

pc = 100 * sd / calls
print(pc)

pd = 100*sd/sd2
print (pd)

pe = 100 * se/calls
print(pe)