我有一个11个数字的列表,我想根据一些规则(2^11个可能性)测试所有组合的乘积。在
我遇到了this SO question,但它似乎返回了所有组合的列表,我认为这将占用大量内存。在
<>我的C++思想是把每一个二进制数^ {< CD1>}到^ {CD2>},并在其对应的位为1的情况下乘以每个数。在
有4个数字的例子:我的列表是[2, 3, 5, 7]
第一个二进制数是0001
,给出-2=2
稍后我们将得到1110
,得到的结果是3 * 5 * 7 = 105
在python
中是否有更好的方法来完成此操作?一点点的操纵似乎不是正确的方法。在
Tags:
可能不是最好的解决方案,但是它应该可以在没有内存问题的情况下使用长列表(正如评论中所说,使用iterables(使用“函数式”方法)不应该导致内存问题)。在
编辑:您可以声明
my_list = np.array([1,3,5,7,9,11,13,15,17,19,21], dtype = 'int64')
来缓解溢出问题。在相关问题 更多 >
编程相关推荐