Advertisement
Guest User

APMO'14 4 - brute force Python

a guest
Nov 27th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.63 KB | None | 0 0
  1. import itertools,math
  2.  
  3. n=8
  4. b=100
  5.  
  6.  
  7. def isCorrect(zbior):
  8.     sumy = set()
  9.     for i in range(1,n+1):
  10.         for kombi in itertools.combinations(zbior, i):
  11.             #print kombi
  12.             sumka = 0
  13.             for e in kombi:
  14.                 sumka+=e
  15.             if sumka in sumy:
  16.                 return False#there exists a duplicate sum
  17.             sumy.add(sumka)
  18.     return True#no duplicates
  19.  
  20. total = 100.0/(math.factorial(b)/(math.factorial(n)*math.factorial(b-n)))
  21. counter = 0
  22. ok=False
  23. for z in itertools.combinations(range(1,b+1),n):
  24.     counter+=1
  25.     if counter%70==0:
  26.         print (counter*total),"%       \r",
  27.     if isCorrect(z):
  28.         print "\n",z,"       "
  29.         ok=True
  30.         break#we only need one
  31. if not ok:
  32.     print "\nNone exist"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement