gpt4 book ai didi

python - 加快元组计数

转载 作者:太空宇宙 更新时间:2023-11-04 07:01:20 26 4
gpt4 key购买 nike

对于我正在做的项目,我有兴趣创建符合以下条件的所有元组 (i,j,k,z,f) 的列表:

  • 所有五个变量都可以在 0 到 343 之间变化
  • i==k j==z k==f

到目前为止我想出的是:

z1=set()
for i in xrange(344):
for j in xrange(344):
for k in xrange(344):
for z in xrange(344):
for f in xrange(344):
if f!=k:
continue
z1.add((i,j,k,z,f))
for i in xrange(344):
for j in xrange(344):
for k in xrange(344):
for z in xrange(344):
for f in xrange(344):
if z!=j:
continue
if (i,j,k,z,f) not in z1:
z1.add((i,j,k,z,f))
for i in xrange(344):
for j in xrange(344):
for k in xrange(344):
for z in xrange(344):
for f in xrange(344):
if k!=i:
continue
if (i,j,k,z,f) not in z1:
z1.add((i,j,k,z,f))

这很慢。我在想可能有一种简单的方法可以加快我忽略的速度……有什么想法吗?

最佳答案

您需要更多内存。很多很多的内存。我们只看第一个条件,i == k。满足该条件的元组数为 343 ** 4 = 13841287201。 130亿!如果每个元组只需要 5*4 = 20 字节的内存,那么该集合仍然需要 257 GB。这甚至不是您想要的集合的所有元素。

所以,不,没有简单的出路。如果我要将这个问题优化到可管理的大小,我首先会问 mysqlf:我真的需要一个那么大的列表吗?或者我可以不用它来解决这个问题吗?

关于python - 加快元组计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22996255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com