我正在寻找一种方法,可以在python中完成,但使用列表而不是向量:
(build-vector n (lambda _ (build-vector n (lambda _ (my-random n)))))
这是我提出的(但有2D列表)
table = []
for i in range(n):
trans = [(random n) for i in range(n)]
table = table + [trans]
但他们给出了不同的结果。我不确定哪里出错,感谢任何帮助,谢谢!
答案 0 :(得分:1)
我不熟悉球拍但build-vector
看起来像列表理解或map
:
Racket: (build-vector n proc)
Python: [proc(i) for i in range(n)]
Python: map(proc, range(n))
所以看起来你正在建立一个随机数的nxn矩阵:
球拍:
(build-vector n (lambda _ (build-vector n (lambda _ (my-random n)))))
的Python:
[[my_random(n) for _ in range(n)] for _ in range(n)]
因此random.randrange
使用my_random
:
>>> from random import randrange as my_random
>>> n = 5
>>> [[my_random(n) for _ in range(n)] for _ in range(n)]
[[1, 2, 2, 0, 3],
[3, 0, 2, 1, 3],
[3, 1, 3, 0, 0],
[0, 0, 2, 4, 4],
[1, 0, 1, 4, 1]]