在棋盘上随机定位棋子

时间:2015-10-02 08:58:30

标签: python random distribution

我想(伪)随机定位网格上的数字点。可以把它想象成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.最好的方法是什么?

2 个答案:

答案 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序列的内容。