我将用一个例子来描述有问题的算法:
我有一 block ,假设 block 号 7
。
我有一个带有 id 的 4 x 4
大小的拼图
00 01 02 03
10 11 12 13
20 21 22 23
30 31 32 33
我需要确定 block 7
的正确位置
位置将是 12
我正在用 Python 编写此代码,我认为我可以使用强力法。我试过计数并到达我需要的位置。
有什么关于简单算法的想法吗?由于我使用的是遗留代码,所以输出必须相同。
最佳答案
修订
使用取模和除法运算求出 x 和 y 坐标 piecenumber/columns 的整数是 x 坐标 piecenumber%columns 的整数是 y 坐标 #i.e.件号/列的其余部分
注意:请记住,python 中的行和列以 0 而不是 1 开头。因此第三行实际上是行号 2。坐标 0,0 中的图 block 是数字 1,因此您从 y 坐标中减去 1。因此你的算法是这样的:
valueyouwant=grid[tilenumber/numberofcolumns][tilenumber%numberofcolumns-1]
即6x7 网格上的第 34 个图 block =
34/6 =5 (ignore remainder)
34%6 =4 -1 = 3
x=5
y=3
00 01 02 03 04 05
10 11 12 13 14 15
20 21 22 23 24 25
30 31 32 33 34 35
40 41 42 43 44 45
50 51 52 53 54 55
60 61 62 63 64 65
Answer is 53
或者以你为例:
piecenum=7
row=piecenum/4
column=piecenum%4-1
value you want = puzzle[row][column]
关于python - 从件号获取位置id的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23327230/