首页 > 解决方案 > 如果该数组中的值可以在 0 到 255 之间,如何在 Python 中生成二维数组的所有可能组合

问题描述

所以我有一个空的 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吗?如果是,我该怎么做

标签: pythonarraysitertools

解决方案


您在此处请求的组合数量255^16=3.1962658*10^38是一个非常大的数字。

假设 1TB = 10^12 字节,CPU 的时钟频率为 4GHz,则需要像方糖中的分子数量一样的存储设备数量和 100 亿倍的宇宙年龄来获取并列出所有这些设备!

简而言之:你不能。

你可以做类似的事情

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

并随机抽样状态。


推荐阅读