Advertisement
fieros

Untitled

Jun 6th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. def plusone(x):
  2. ptm = []
  3. mtp = []
  4. if x[-1] == 0:
  5. x[-1] = 1
  6. ptm.append(-1)
  7. return x, ptm, mtp
  8. i = -1
  9. while x[i-1] == 1:
  10. x[i] = 0
  11. mtp.append(i)
  12. i -= 1
  13. x[i-1] = 1
  14. ptm.append(i-1)
  15. return x, ptm, mtp
  16.  
  17.  
  18. def sum(ar):
  19. s = 0
  20. for i in ar:
  21. s += i
  22. return s
  23.  
  24.  
  25. def workf(x, n, ar1):
  26. ar = ar1
  27. f = [0 for a in range(n+1)]
  28. cursum = sum(ar1)
  29. double = [x*2 for x in ar1]
  30. if cursum == x:
  31. return ar1
  32. for j in range(2**(n-1)):
  33. f, ptm, mtp = plusone(f)
  34. if f[0] == 1:
  35. return 'No sulution!'
  36. if bool(ptm):
  37. for i in ptm:
  38. cursum -= double[i]
  39. ar[i] = -ar[i]
  40. ptm.clear()
  41. if bool(mtp):
  42. for i in mtp:
  43. cursum += double[i]
  44. ar[i] = -ar[i]
  45. mtp.clear()
  46. if cursum == x:
  47. return ar
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement