我想(伪)随机定位网格上的数字点。可以把它想象成10 x 10棋盘,有100个方格)并将这些点视为棋盘上的棋子,每个棋盘占据一个方格。我想要的是让棋子“均匀地”#34;分布在董事会。中间平方法适用于生成随机数。
00 01 02 03 04 05 06 07 08 09
10 11 12 13 14 15 16 17 18 19
20 21 22 23 24 25 26 27 28 29
30 31 32 33 34 35 36 37 38 39
40 41 42 43 44 45 46 47 48 49
50 51 52 53 54 55 56 57 58 ...
我的问题是,如果我将网格正方形存储为列表,并从左上角到右下角绘制它们,那么正方形9不会像你期望的那样接近10。 10,紧挨着0& 20.最好的方法是什么?
答案 0 :(得分:0)
列表中的元素编号从零开始,而不是1.因此,您的第一个方块的编号为0(您确实看到了它,对吗?),第10个方格的编号为9.这就是为什么第二行的第一个方格有数字10而不是11.这是因为0 + 10 = 10.如果你想打印从1开始的数字你可以在print
中添加1到一个正方形数字:
print (square[number] + 1)
由于我没有看到您的代码,因此我无法提供更好的代码示例,这些示例将完美地传递给您的代码。
答案 1 :(得分:0)
仅仅因为您将最终方块存储为列表,这并不意味着您必须生成线性范围内的随机数。如果你知道你有一个100x100网格,那么分别选择X和Y坐标选择点,然后填写方形数字100 * X + Y.
如果你想要随机分布点,那么只需确保从均匀随机分布0..99中选择X和Y.如果您希望均匀分布点,请使用类似Halton序列的内容。