我试图让 2 个点访问 3 x 3 网格中的所有点。探访点的方法是:
(0, 0)
开始。(0, 0)
移动到 (0, 1)
,(1, 0)
直到 (3, 3)
。(3, 3)
) 时,P2 应从 (0, 0)
更新为 (0, 1)
,然后(3, 3)
。因此,结合 2 个点进行穷举/强力搜索。我试过:
def traversal_methods(num_particles, grid_size):
particles = [(0, 0) for _ in range(num_particles)]
while(particles[1] != (grid_size - 1 , grid_size - 1 )):
for k in range(0, grid_size):
for l in range(0, grid_size):
particles[1] = (k, l)
particles[0] = (0, 0)
while(particles[0] != (grid_size-1, grid_size-1)):
for i in range(k, grid_size):
for j in range(0, grid_size):
particles[0] = (i, j)
我没有得到预期的结果。我也想把这个延伸到
n-points
。谁能建议一些方法来做到这一点?
我也想将其扩展到
。谁能建议一些方法来做到这一点?n-points
def grid_create(size_x, size_y):
grid = [[None for _ in range(size_x)] for _ in range(size_y)]
for y in range(size_y):
for x in range(size_x):
grid[y][x] = (x, y)
return grid
grid = grid_create(3, 3)
结果(列表列表中的元组为
(x, y)
为 [y][x]
):
[(0, 0), (1, 0), (2, 0)],
[(0, 1), (1, 1), (2, 1)],
[(0, 2), (1, 2), (2, 2)]
遍历(从P1到P2):
def grid_traverse(grid):
for y1 in range(len(grid)):
for x1 in range(len(grid[y1])):
print('P1 {}'.format(grid[y1][x1]))
for y2 in range(y1, len(grid)):
for x2 in range(x1, len(grid[y1])):
print('\tP2 {}'.format(grid[y2][x2]))
grid = grid_create(3, 3)
grid_traverse(grid)
结果为
(x, y)
:
P1 (0, 0)
P2 (0, 0)
P2 (1, 0)
P2 (2, 0)
P2 (0, 1)
P2 (1, 1)
P2 (2, 1)
P2 (0, 2)
P2 (1, 2)
P2 (2, 2)
P1 (1, 0)
P2 (1, 0)
P2 (2, 0)
P2 (1, 1)
P2 (2, 1)
P2 (1, 2)
P2 (2, 2)
P1 (2, 0)
P2 (2, 0)
P2 (2, 1)
P2 (2, 2)
P1 (0, 1)
P2 (0, 1)
P2 (1, 1)
P2 (2, 1)
P2 (0, 2)
P2 (1, 2)
P2 (2, 2)
P1 (1, 1)
P2 (1, 1)
P2 (2, 1)
P2 (1, 2)
P2 (2, 2)
P1 (2, 1)
P2 (2, 1)
P2 (2, 2)
P1 (0, 2)
P2 (0, 2)
P2 (1, 2)
P2 (2, 2)
P1 (1, 2)
P2 (1, 2)
P2 (2, 2)
P1 (2, 2)
P2 (2, 2)
没有网格的示例:
def grid_traverse(size_x, size_y):
for y1 in range(size_y):
for x1 in range(size_x):
print('P1 ({}, {})'.format(x1, y1)
for y2 in range(y1, size_y):
for x2 in range(x1, size_x):
print('\tP2 ({}, {})'.format(x2, y2)
grid_traverse(3, 3)