Как я могу сгенерировать случайную матрицу с двумя фиксированными позициями в Python? - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь создать Матрицу N x N, (4x4 в этом случае). Где первый и последний индексы всегда равны нулю. Матрица заполнена случайными нулями и единицами. Мой текущий код создает матрицу, но я не уверен, как исправить два бита и случайным образом сгенерировать ноль или единицу в оставшиеся 14 точек.

Пример:

mapp = np.matrix('0 1 1 1; 0 1 1 1; 0 1 1 1; 0 0 0 0')

Так что единицы в матрице должны располагаться случайным образом без помещения их в 1-й и последний индекс Этот код является частью моего кода алгоритма Geneti c, который я пишу. Это карта, которая начинается с 0 и находит оптимальный путь до 15. Именно поэтому значения индекса 0 и 15 равны нулю.

1 Ответ

0 голосов
/ 01 мая 2020

Самый простой способ, которым я могу придумать, - это создать матрицу и затем настроить ее вручную следующим образом:

mapp[[0, -1],[0, -1]] = 0

Трудный способ сделать всю случайность и фиксацию вместе может выглядеть примерно так:

n = 4
np.hstack([[0],np.random.randint(0,2,n*n -2), [0]]).reshape(n,n)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...