【发布时间】:2016-03-23 23:03:39
【问题描述】:
所以,我有一个小问题,女巫在 python 中为二维数组创建随机数。
我有一个像这样的矩阵
matrix:
row = ['.' for i in range(w)]
self.matrix = [row]
for j in range(h - 1):
row = ['.' for i in range(w)]
self.matrix.append(row)
w = int(input("please insert the width of the array: "))
h = int(input("please insert the height of the array: "))
user = int(input("please insert a number for objects: "))
x = random.sample(range(w), user)
y = random.sample(range(h), user)
list(zip(x, y))
所以,现在我想创建这么多随机数作为用户输入。例如,如果用户输入 100,我需要 x 和 y 中的 100 个数字,这样我就可以将它们用作位置,将对象随机插入到数组中。
但如果宽度和高度更小,那么用户输入会出错。
【问题讨论】:
-
这里“在样本中引发 ValueError(“样本大于总体”)”
-
您的
user值大于len(range(w))(或len(range(h))) -
是的,但是有没有办法克服这个问题,我尝试了其他随机可能性,但还没有找到解决方案。
-
独立调用
random.sample两次对我来说没有多大意义。这意味着您从网格中选择的所有点都将具有完全唯一的 x 坐标和 y 坐标——例如,您永远不会同时得到 (0,0) 和 (0,1)。如果你想要真正随机的坐标,你需要创建一个所有坐标的列表并在该列表上调用sample一次。 -
这确实更有意义,我会尝试一下。谢谢 :)
标签: python arrays random numbers position