Я ищу эффективный способ найти список всех соседних записей данного элемента.
Я могу сделать это с итерацией, проходя все соседние места (кроме, выше, под и в диагональном уровне, но я смотрю на себя и в более эффективном. /> Пример:
Указано матрицу 25x25, все элементы инициализируются до 0 < /p>
Код: Выделить всё
DashBoard = [[0 for _ in range(25)] for _ in range(25)]
< /code>
Элемент, который я ищу соседей, расположен по адресу (10,10)
Есть записи по адресу (10,9), (10,11) и (11,11) < /p>
DashBoard[10][10] = 1
DashBoard[10][9] = 1
DashBoard[10][11] = 1
DashBoard[11][11] = 1
Я не знаю, не знают ли Numpy, Pandas или любой другой, построенный. /> Есть идеи? < /p>
edit1:
0 в матрице означает: нет значения
1 в матрице означает значение (запись)
Так что я ищу все соседние значения «1» в ряду (горизонтальный, вертикальный или диагональный). основание). Я ищу сумму синего и сумму красного: < /p>
Могут быть и другие значения в других местах в матрице, но поскольку они не находятся непосредственно примыкают к набору моей основы, они не имеют отношения к нашему расчету < /p>
edit2:
ok. Подумайте о некой игре Tic-Tac-Toe, но в пределах практически неограниченной панели панели и с практически неограниченными возможностями входа в ряд, и только с одним игроком.
Входные данные идут случайным образом, и на каждом входном событии я должен проверить, сколько записей я включаю новый в ряд (горизонтально, вертикально или в диагональном), основанный на последнем входном примере. и появилась новая запись (10,10). Теперь на основе этой новой записи я должен проверить количество соседей подряд. В моем примере у меня есть 3 горизонтали и 2 в диагонали. И, конечно, у меня может быть много записей или рядов в другом месте, но, поскольку они не подключены непосредственно к моему последнему вводу, я не рассматриваю их. Входные данные поступают, мы должны вернуть список соседей (включая сам ввод.
Каждое значение, уже в матрице, но не связано непосредственно с входом, не подсчитывается. < /p>
В качестве примера введенный вход вводится на красный и желтый. Первый диагональ и 5 для второго диагонального
Подробнее здесь: https://stackoverflow.com/questions/797 ... n-a-matrix