我怎样才能产生一个n个正负两个随机整数的数组

问题描述

我想产生一个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))


解决方法

改为使用randrange函数

import random

random.randrange(y,n) # line 11

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

,

请参阅有关randint函数的Python文档。

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

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

首先,您有 a b 参数,然后是 a b 。在您的情况下, a 大于 b

在您的代码中,一旦 y n :

arr = random.randint(y,n)

第二位,x未定义。但是,正如您想要的平均值一样,请除以 n ,例如avg = sum/n

,

这将为您提供所需的信息:

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))