【问题标题】:How can i produce an array of n random integers that are both positive and negative [duplicate]我怎样才能产生一个由n个随机整数组成的数组,它们都是正数和负数[重复]
【发布时间】:2020-10-17 04:06:50
【问题描述】:

我想生成一个包含 n 个正负数的随机整数数组。例如,如果我输入 4,它将产生 [1,-2,-4,3]

import stdio
import sys
import random

n = int(input(sys.argv[0]))
y = n * -1

randomlist = []
for i in range(0,n):
    arr = random.randint(n, y)
    randomlist.append(arr)
print(randomlist)


sum = 0
for i in randomlist:
    sum += i

avg = sum/x
print("Average is",avg)
print("Max value is", max(randomlist))
print("Min value is", min(randomlist))


【问题讨论】:

  • 您遇到的错误是什么?

标签: python arrays random printing stdio


【解决方案1】:

改用 randrange 函数

import random

random.randrange(y,n) # line 11

它应该满足您的需要,并将您的代码行 19 编辑为 avg = sum/len(randomlist)

【讨论】:

    【解决方案2】:

    查看有关 randint 函数的 Python 文档。

    https://docs.python.org/3/library/random.html#functions-for-integers

    random.randint(a, b)
    返回一个随机整数 N,使得 a

    首先,您有 ab 参数,然后是 a b。在您的情况下,a 不仅仅是 b

    在你的代码中会这样,一旦 y n:

    arr = random.randint(y, n)
    

    其次,x 没有定义。但是如果你想要平均值,那么除以 n,就像这样 avg = sum/n

    【讨论】:

      【解决方案3】:

      这将满足您的需要:

      import random
      import sys
      
      n = int(input(sys.argv[0]))
      y = n * -1
      rand_list = random.sample(range(y, n), n)
      

      你可以继续你的平均值、最大值和最小值:

      print('Mean of list: ', sum(rand_list)/len(rand_list))
      print('Max value: ', max(rand_list))
      print('Min value: ', min(rand_list))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-16
        • 2011-09-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多