Как сгенерировать все возможные комбинации двухмерного массива в Python, если значение в этом массиве может быть между 0 и 255 - PullRequest
0 голосов
/ 18 ноября 2018

Итак, у меня есть пустой массив 4 * 4, значения в нем могут быть между 0 и 255, я хочу сгенерировать все возможные состояния этого массива, например, одно из состояний:

 [0, 0, 0, 0] 
 [0, 0, 0, 0] 
 [0, 0, 0, 0] 
 [0, 0, 0, 0] 

, а другой:

[245, 241, 124, 53]
[124, 11, 45, 31]
[44, 0, 124, 3]
[1, 30, 123, 31]

Можно ли это сделать с помощью itertools? И если это так, как мне это сделать

1 Ответ

0 голосов
/ 18 ноября 2018

Количество комбинаций, которые вы запрашиваете здесь, составляет 255^16=3.1962658*10^38, что является очень большим числом.

Учитывая, что 1 ТБ = 10 ^ 12 байт и тактовая частота процессора составляет 4 ГГц, потребуется количество молекул в сахарном кубе, количество устройств хранения и 10 миллиардов раз возраста вселенной, чтобы получить и перечислить все их!

Короче говоря : вы не можете.

Вы можете сделать что-то вроде

import numpy as np
i=0
while i < 10000:
    currentstate=256*np.floor(np.rand(4,4))
/* ... do something with current state */

и случайную выборку состояний.

...