Jupyter卡住了

时间:2019-03-21 12:07:04

标签: jupyter-notebook

我有以下代码:

Code

当我输入n = 6时,代码简直卡住了(用jupyter表示),我不知道该怎么办,请帮忙。

n=int(input("Enter a number to experiment:"))
l=[]
w=[]
nw=[]
c=0
for i in range(2*n):
 if(i<n):
   l.append(0)
 else:
   l.append(1)

import itertools as it
permset=set([i for i in it.permutations(l)])
for x in permset:
  w.append(x)
print (w)
for j in range(len(w)):
  c=1

   for y in range(2*n-1):

      if(w[j][y]==w[j][y+1]):
         c=c
      else:
         c=c+1

nw.append(c)
print(nw)
from collections import Counter
Counter(nw)

1 个答案:

答案 0 :(得分:1)

问题是调用itertools.permutations。它正在计算先前构建的数组的所有可能排序,对于N = 6,为:

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

我相信这将返回(12!)= 479001600项,然后您的代码将变成一组项以删除重复项。它永远不会走得那么远,但是,如果做到了,我相信479001600项将变成只有924项的集合。

不确定您的目标是什么,但是也许这部分需要的是一种生成924个项目的方法,而无需构建较大的列表,该列表具有许多重复项。据我了解,代码的这一部分正在构建大小为(2 * n)的数组的集合,其中恰好一半的元素为0,一半的元素为1。