【问题标题】:Python: After creating random numbers, how do I associate those numbers with the list i've madePython:创建随机数后,如何将这些数字与我制作的列表相关联
【发布时间】:2013-02-26 15:13:38
【问题描述】:

所以基本上我需要创建一个标记为 [0,1,2,3,4,5,10,25,100] 的缓冲区列表。然后我需要在 (0.75 和 4.75)+3 之间创建随机数。现在我需要打印类似“缓冲区 3 占用和平均 x 秒”之类的内容。 x 将是生成的随机数。每个缓冲区必须有自己的随机数

def main():
    buffer= [0,1,2,3,4,5,10,25,100]
    time= random.uniform(0.75,4.75)+3
    sum=0
    for i in range (1, 500):
        sum = sum + time;
        average= sum/1500
        for buffer in range(0,1,2,3,4,5,10,25,100):
           print("For Buffer",buffer,",the average time is",average,".")

[已解决]

#Lab 1 using python.
Import random  #Importing random number generator.
def main():
    buffers= [0,1,2,3,4,5,10,25,100]; #Defining the buffers using list.
    for buffer in buffers:
        sum=0;

        for i in range (1, 500): # Create a loop which will create random number and increment 500 times.
            time= (random.uniform (0.75,4.75))+3
            sum = sum + time

        average= sum/500; #Finding the average of each buffers random numbers.

        print("For Buffer",buffer,",the average time is",average,"."); #Print the output.

【问题讨论】:

  • 我不是 100% 清楚你在这里问什么,但如果你想为每个缓冲区使用不同的随机数,你需要移动随机数生成 inside i> 您的缓冲区 for 循环,或者您需要在生成它们时将所有随机数存储在某处(例如列表),然后在缓冲区 for 循环中对其进行迭代。
  • 为什么不random.uniform(3.75, 7.75)

标签: python loops random for-loop


【解决方案1】:

您只需要更改它,以便在 for 循环中完成平均计算。

buffer= [0,1,2,3,4,5,10,25,100]
    for buffer in range(0,1,2,3,4,5,10,25,100):
          sum=0
          for i in range (1, 500):
             time= random.uniform(0.75,4.75)+3
             sum = sum + time;
             average= sum/1500
          print("For Buffer",buffer,",the average time is",average,".")

【讨论】:

  • 不应该在for循环里面吗?现在总和将只是time*500average==time/3,这没什么意义。
  • 好点,我实际上并没有看计算,只是将代码移到另一个循环中。将进行编辑以反映这一点
  • 我还怀疑 500 或 1500 是 @Dizzy 的错误。
【解决方案2】:

您可以使用字典将每个缓冲区与其平均值相关联,该字典将缓冲区直接用作键,并将其平均值作为值。

def main():
    buffer= [0,1,2,3,4,5,10,25,100]
    time= random.uniform(0.75,4.75)+3
    sum=0
    dict_of_buffers = {}
    for i in range (1, 500):
        sum = sum + time;
        average= sum/1500
        for buffer in range(0,1,2,3,4,5,10,25,100):
            print("For Buffer",buffer,",the average time is",average,".")
            dict_of_buffers[buffer] = average

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多