I have the following script 186.py:
S=[] study=set([524287]) tmax=10**7 D={} DF={} dudcount=0 callcount=0 def matchval(t1,t2): if t1==t2: global dudcount dudcount+=1 else: global callcount callcount+=1 D.setdefault(t1,set([])) D.setdefault(t2,set([])) D[t1].add(t2) if t1 in D[t2]: DF.setdefault(t1,set([])) DF[t1].add(t2) DF.setdefault(t2,set([])) DF[t2].add(t1) for k in xrange(27): t1=(100003 - 200003*(2*k+1) + 300007*(2*k+1)**3)%(1000000) S.append(t1) t2=(100003 - 200003*(2*k+2) + 300007*(2*k+2)**3)%(1000000) S.append(t2) matchval(t1,t2) t1=(100003 - 200003*(55) + 300007*(55)**3)%(1000000) S.append(t1) t2=(S[31]+S.pop(0))%(1000000) S.append(t2) matchval(t1,t2) for k in xrange(29,tmax+1): t1=(S[31]+S.pop(0))%(1000000) S.append(t1) t2=(S[31]+S.pop(0))%(1000000) S.append(t2) matchval(t1,t2) D.setdefault(524287,set([])) DF.setdefault(524287,set([])) print D[524287] print DF[524287] print dudcount,callcount print "Done"
The last line prints "Finish", but python does not exit when this happens. I type the following command:
$ time python 186.py
And get the results:
set([810528L, 582178L, 49419L, 214483L, 974071L, 651738L, 199163L, 193791L]) set([]) 11 9999989 Done
But I need ctrl + C to get the time:
real 34m18.642s user 2m26.465s sys 0m11.645s
After the "Done" program was released, the python processor load is very small ... but memory usage continues to grow ... I used ctrl + C when it reached 80% of my system memory (its old system).
What's going on here? What does the program do after creating Done? Shouldn't this be done?
Thanks Dan
source share