Python 随机大小的随机矩阵,随机大小的元素总计为最大大小
我一直在努力制作一个随机矩阵生成器,用随机大小的元素填充它Python 随机大小的随机矩阵,随机大小的元素总计为最大大小,python,Python,我一直在努力制作一个随机矩阵生成器,用随机大小的元素填充它 import random from collections import deque rand_max = random.randint(1,10) matrix = [] print("Max:",rand_max) for num_y in range(random.randint(1,rand_max)): line_length = 0 x = [] print("Row:",num_y) fo
import random
from collections import deque
rand_max = random.randint(1,10)
matrix = []
print("Max:",rand_max)
for num_y in range(random.randint(1,rand_max)):
line_length = 0
x = []
print("Row:",num_y)
for num_x in range(random.randint(1,(rand_max - line_length))):
if line_length != rand_max:
partial = []
for num_z in range(random.randint(1, (rand_max - line_length))):
partial.append(0)
line_length += 1
x.append(partial)
continue
print("Line is:",x)
print("Length is:", line_length)
matrix.append(x)
#print(matrix)
start_x = random.randint(0, len(matrix))
start_y = random.randint(0, start_x)
print("Your start location is: ","(",start_x,",",start_y,")")
next_moves = deque()
所以它在大多数情况下都能完成我希望它完成的任务,但有时它会提供一个max_length,我已经做了一段时间了,我有点不知道为什么
下面是一个错误输出的示例:
最高:6
行:0
行是:[[0,0,0,0,0,0],[0]]
长度为:6
行:1
行是:[[0,0,0,0],[0,0]]
长度为:6
世界其他地区:2
行是:[[0,0,0],[0,0,0]]
长度为:6
世界其他地区:3
行是:[[0],[0,0,0,0,0,0]]
长度为:6
第4排
行是:[[0],[0,0,0],[0]]
长度为:5
世界其他地区:5
行是:[[0,0,0,0,0,0],[0]]
长度为:6
您的起始位置是:(1,1)
有时我的行会留下空格,我不知道为什么 线的长度是随机生成的。它是几个随机数的总和(实际上是随机数的一个随机数)。这通常是最大值,因为当你到达那里时,你停止生成更多,但没有什么能阻止你得到更少,除了低概率。我理解你的意思,感觉解决方案不远了,我只是很难看到在哪里实现你所说的。我很感激你的指导,你想要什么并不明显。如果希望所有行都具有最大长度,我建议添加最后一项,其中包含
rand\u max-line\u length
元素。但请注意,通过强制这样做,您可能会稍微扭曲随机分布。这对你来说可能重要,也可能不重要(你的代码已经产生了一个相当扭曲的分布)。谢谢你,我能够通过在循环结束时执行检查来纠正它。不,在这一点上,级别或随机化对我来说不重要。我只是想爬过一个格子,记录下我的动作。我刚刚开始我的编程冒险,这是我想做的事情。我希望有更多的经验能变得更复杂。