Advertisement
Guest User

Untitled

a guest
Oct 20th, 2019
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.93 KB | None | 0 0
  1. def bfs(root):
  2. rs=root
  3. i=1
  4. ugly=15
  5. while rs is not None:
  6. n=rs
  7. rs=None
  8. c=None
  9. I=0
  10. flag=True
  11. while i:
  12. i -=1
  13. if flag:
  14. if n.right is not None:rs=c=n.right
  15. if n.left is not None:rs=c=n.left
  16. I=1
  17. flag=False
  18. if n.left is not None:
  19. c.right=n.left
  20. c=c.right
  21. I+=1
  22. if n.right is not None:
  23. c.right=n.right
  24. c=c.right
  25. I+=1
  26. print('c=',c.value,'\tn=',n.value,'\trs=',rs.value)
  27. n=n.right
  28.  
  29. ugly+=1
  30. if ugly==20:return
  31. i=I
  32. import binarytree as b
  33. tree=b.tree(is_perfect=True);print(tree);bfs(tree)
  34. ans=tree.left.left.right.value
  35. ans=tree.left.right.right.value
  36. ans=tree.right.left.value
  37. ans=tree.right.right.value
  38. from itertools import combinations
  39. l=[5,10,15,20,25]
  40. def f(l):
  41. for c in combinations(range(len(l))):
  42. c=set(c)
  43. s=set(range(len(l)))-c
  44. c=set(gather(l,*list(c)))
  45. s=set(gather(l,*list(s)))
  46. s1=sum(c,0)
  47. s2=sum(s,0)
  48. yield abs(s1-s2),c,s
  49. ans=f(l)
  50. for x in ans:
  51. print(x)
  52. for x in f(l):
  53. print(x)
  54. def f(l):
  55. for i in range(len(l)):
  56. for c in combinations(range(len(l)),i):
  57. c=set(c)
  58. s=set(range(len(l)))-c
  59. c=set(gather(l,*list(c)))
  60. s=set(gather(l,*list(s)))
  61. s1=sum(c,0)
  62. s2=sum(s,0)
  63. yield abs(s1-s2),c,s
  64. for x in f(l):
  65. print(x)
  66. def f(l):
  67. for i in range(len(l)):
  68. for c in combinations(range(len(l)),i):
  69. c=set(c)
  70. s=set(range(len(l)))-c
  71. c=set(gather(l,list(c)))
  72. s=set(gather(l,list(s)))
  73. s1=sum(c,0)
  74. s2=sum(s,0)
  75. yield abs(s1-s2),c,s
  76. for x in f(l):
  77. print(x)
  78. def g(l):
  79. return min(f(l),key= lambda x: x[0])[1:]
  80. ans=f(l)
  81. ans=g(l)
  82. ans=randints(10)
  83. l= ans
  84. ans=g(ans)
  85. ans=g(l)
  86. ans=g(l)
  87. ans=g(l)
  88. ans=g(l)
  89. def t(l):
  90. a=0
  91. b=0
  92. A=set()
  93. B=set()
  94. def score(a,b):
  95. return abs(a-b)
  96. for i in sorted(l,reverse=True):
  97. if score(a+i,b)<score(a,b+i):
  98. a+=i
  99. A.add(i)
  100. else:
  101. b+=i
  102. B.add(i)
  103. return A,B
  104.  
  105.  
  106.  
  107. ans=t(l)
  108. def score(ans):
  109. return abs(sum(ans[0])-sum(ans[1]))
  110. ans=score(ans)
  111. ans=score(({65, 17, 59, 61}, {89, 74, 4, 28, 5}))
  112. ans=l
  113. g()
  114. ans=g(l)
  115. ans=t(l)
  116. def t(l):
  117. a=[]
  118. b=[]
  119. def move():
  120. for i in a:
  121. if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  122. del a.index(i)
  123. b.append(i)
  124. for i in b:
  125. if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  126. del b.index(i)
  127. a.append(i)
  128. for _ in range(len(l)*10):
  129. return a,b
  130. def t(l):
  131. a=[]
  132. b=[]
  133. def move():
  134. for i in a:
  135. if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  136. del a.index(i)
  137. b.append(i)
  138. for i in b:
  139. if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  140. del b[b.index(i)]
  141. a.append(i)
  142. for _ in range(len(l)*10):
  143. return a,b
  144. def t(l):
  145. a=[]
  146. b=[]
  147. def move():
  148. for i in a:
  149. if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  150. del a[a.index(i)]
  151. b.append(i)
  152. for i in b:
  153. if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  154. del b[b.index(i)]
  155. a.append(i)
  156. for _ in range(len(l)*10):
  157. return a,b
  158. ans=t(l)
  159. def t(l):
  160. a=l.copy()
  161. b=[]
  162. def move():
  163. for i in a:
  164. if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  165. del a[a.index(i)]
  166. b.append(i)
  167. for i in b:
  168. if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  169. del b[b.index(i)]
  170. a.append(i)
  171. for _ in range(len(l)*10):
  172. return a,b
  173. ans=t(l)
  174. def t(l):
  175. a=l.copy()
  176. b=[]
  177. def move():
  178. for i in a:
  179. if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  180. del a[a.index(i)]
  181. b.append(i)
  182. for i in b:
  183. if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  184. del b[b.index(i)]
  185. a.append(i)
  186. for _ in range(len(l)*10):
  187. return a,b
  188. ans=t(l)
  189. def t(l):
  190. a=l.copy()
  191. b=[]
  192. def move():
  193. for i in a:
  194. if score(a,b)>abs((sum(a)-i)-(sum(b)+i)):
  195. del a[a.index(i)]
  196. b.append(i)
  197. for i in b:
  198. if score(a,b)>abs((sum(a)+i)-(sum(b)-i)):
  199. del b[b.index(i)]
  200. a.append(i)
  201. for _ in range(len(l)*10):
  202. move()
  203. return a,b
  204. t(l)
  205. def t(l):
  206. a=l.copy()
  207. b=[]
  208. def move():
  209. for i in a:
  210. if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  211. del a[a.index(i)]
  212. b.append(i)
  213. for i in b:
  214. if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  215. del b[b.index(i)]
  216. a.append(i)
  217. for _ in range(len(l)*10):
  218. move()
  219. return a,b
  220. t(l)
  221. ans=l
  222. ans=r
  223. def t(l):
  224. l=list(l)
  225. a=l.copy()
  226. b=[]
  227. def move():
  228. for i in a:
  229. if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  230. del a[a.index(i)]
  231. b.append(i)
  232. for i in b:
  233. if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  234. del b[b.index(i)]
  235. a.append(i)
  236. for _ in range(len(l)*10):
  237. move()
  238. return a,b
  239. ans=t(l)
  240. ans=score(ans)
  241. def t(l):
  242. l=list(l)
  243. a=l.copy()
  244. b=[]
  245. def move():
  246. nonlocal a,b
  247. a=shuffled(a)
  248. b=shuffled(b)
  249. for i in a:
  250. if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  251. del a[a.index(i)]
  252. b.append(i)
  253. for i in b:
  254. if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  255. del b[b.index(i)]
  256. a.append(i)
  257. for _ in range(len(l)*10):
  258. move()
  259. return a,b
  260. ans=t(l)
  261. ans=score(ans)
  262. def t(l):
  263. l=list(l)
  264. a=l.copy()
  265. b=[]
  266. def move():
  267. nonlocal a,b
  268. a=shuffled(a)
  269. b=shuffled(b)
  270. for i in a:
  271. if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  272. del a[a.index(i)]
  273. b.append(i)
  274. for i in b:
  275. if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  276. del b[b.index(i)]
  277. a.append(i)
  278. for _ in range(len(l)*100):
  279. move()
  280. return a,b
  281. ans=t(l)
  282. ans=score(ans)
  283. def I(a,b):
  284. def iscore(i,a,b):
  285. A=a.copy()
  286. B=b.copy()
  287. B.append(a[i])
  288. del A[i]
  289. return (score((a,b))-score((A,B)))
  290. def isc(i):
  291. return iscore(i,a,b)
  292. return max(range(len(a)),key=isc)
  293. def S(a,b,i):
  294. b.append(a[i])
  295. del a[i]
  296. def F(a):
  297. a=list(a)
  298. A=a.copy()
  299. B=[]
  300. for _ in range(len(a)):
  301. S(A,B,I(A,B))
  302. return A,B
  303.  
  304. ans=F(l)
  305. def I(a,b):
  306. def iscore(i,a,b):
  307. A=a.copy()
  308. B=b.copy()
  309. B.append(a[i])
  310. del A[i]
  311. return (score((a,b))-score((A,B)))
  312. def isc(i):
  313. return iscore(i,a,b)
  314. out=max(range(len(a)),key=isc)
  315. if isc(out)>=0:
  316. return out
  317. return None
  318. def F(a):
  319. a=list(a)
  320. A=a.copy()
  321. B=[]
  322. for _ in range(len(a)):
  323. ii=I(A,B)
  324. if ii is None:
  325. return
  326. S(A,B,ii)
  327. return A,B
  328.  
  329. F(l)
  330. def F(a):
  331. a=list(a)
  332. A=a.copy()
  333. B=[]
  334. for _ in range(len(a)):
  335. ii=I(A,B)
  336. if ii is None:
  337. break
  338. S(A,B,ii)
  339. return A,B
  340.  
  341. ans=F(l)
  342. ans=score(ans)
  343. ans=g(l)
  344. ans=score(ans)
  345. ans=randints(20)
  346. l= ans
  347. g(ans)
  348. def t(l):
  349. l=list(l)
  350. a=l.copy()
  351. b=[]
  352. def move():
  353. nonlocal a,b
  354. a=shuffled(a)
  355. b=shuffled(b)
  356. for i in a:
  357. if score((a,b))>abs((sum(a)-i)-(sum(b)+i)):
  358. del a[a.index(i)]
  359. b.append(i)
  360. for i in b:
  361. if score((a,b))>abs((sum(a)+i)-(sum(b)-i)):
  362. del b[b.index(i)]
  363. a.append(i)
  364. for _ in range(len(l)*100):
  365. move()
  366. return a,b
  367. ans=t(l)
  368. ans=score(ans)
  369. score(t(k))
  370. ans=score(t(l))
  371. ans=score(t(l))
  372. ans=score(t(l))
  373. ans=score(t(l))
  374. ans=score(t(l))
  375. ans=score(t(l))
  376. ans=score(t(l))
  377. ans=score(t(l))
  378. ans=score(t(l))
  379. ans=score(t(l))
  380. ans=score(t(l))
  381. ans=F(l)
  382. ans=score(ans)
  383. def f(l):
  384. a=l.copy()
  385. b=[]
  386. for _ in range(len(a)):
  387. diff=sum(a)-sum(b)
  388. d=enumerate(diff-e for i,e in enumerate(a))
  389. i,v=max(d,key= lambda x: x[1])
  390. if v<=0:
  391. break
  392. del a[i]
  393. b.append(v)
  394. return a,b
  395.  
  396.  
  397.  
  398. f(l)
  399. def f(l):
  400. l=list(l)
  401. a=l.copy()
  402. b=[]
  403. for _ in range(len(a)):
  404. diff=sum(a)-sum(b)
  405. d=enumerate(diff-e for i,e in enumerate(a))
  406. i,v=max(d,key= lambda x: x[1])
  407. if v<=0:
  408. break
  409. del a[i]
  410. b.append(v)
  411. return a,b
  412.  
  413.  
  414.  
  415. ans=f(l)
  416. ans=f(l)
  417. ans=randints(10)
  418. ans=f(ans)
  419. def f(l):
  420. l=list(l)
  421. a=l.copy()
  422. b=[]
  423. for _ in range(len(a)):
  424. diff=sum(a)-sum(b)
  425. d=enumerate((i,diff-e) for i,e in enumerate(a))
  426. i,v=max(d,key= lambda x: x[1])
  427. if v<=0:
  428. break
  429. del a[i]
  430. b.append(v)
  431. return a,b
  432.  
  433.  
  434.  
  435. f(ans)
  436. def f(l):
  437. l=list(l)
  438. a=l.copy()
  439. b=[]
  440. for _ in range(len(a)):
  441. diff=sum(a,0)-sum(b,0)
  442. d=enumerate((i,diff-e) for i,e in enumerate(a))
  443. i,v=max(d,key= lambda x: x[1])
  444. if v<=0:
  445. break
  446. del a[i]
  447. b.append(v)
  448. return a,b
  449.  
  450.  
  451.  
  452. f(ans)
  453. f(l)
  454. ans=l
  455. f(l)
  456. def f(l):
  457. l=list(l)
  458. a=l.copy()
  459. b=[]
  460. for _ in range(len(a)):
  461. diff=sum(a,0)-sum(b,0)
  462. d=enumerate((i,diff-e) for i,e in enumerate(a))
  463. i,v=max(d,key= lambda x: x[1])
  464. if v<=0:
  465. break
  466. del a[i]
  467. b.append(v)
  468. return a,b
  469.  
  470.  
  471.  
  472. def f(l):
  473. l=list(l)
  474. a=l.copy()
  475. b=[]
  476. for _ in range(len(a)):
  477. diff=sum(a,0)-sum(b,0)
  478. d=enumerate((i,diff-e) for i,e in enumerate(a))
  479. i,v=max(d,key= lambda x: x[1])
  480. print(v)
  481. if v<=0:
  482. break
  483. del a[i]
  484. b.append(v)
  485. return a,b
  486.  
  487.  
  488.  
  489. f(l)
  490. def f(l):
  491. l=list(l)
  492. a=l.copy()
  493. b=[]
  494. for _ in range(len(a)):
  495. diff=sum(a,0)-sum(b,0)
  496. d=enumerate((i,diff/2-e) for i,e in enumerate(a))
  497. i,v=max(d,key= lambda x: x[1])
  498. print(v)
  499. if v<=0:
  500. break
  501. del a[i]
  502. b.append(v)
  503. return a,b
  504.  
  505.  
  506.  
  507. f(l)
  508. def f(l):
  509. l=list(l)
  510. a=l.copy()
  511. b=[]
  512. for _ in range(len(a)):
  513. diff=sum(a,0)-sum(b,0)
  514. d=enumerate((i,diff/2-e) for i,e in enumerate(a))
  515. print(list(d))
  516. i,v=max(d,key= lambda x: x[1])
  517. print(v)
  518. if v<=0:
  519. break
  520. del a[i]
  521. b.append(v)
  522. return a,b
  523.  
  524.  
  525.  
  526. f(l)
  527. def f(l):
  528. l=list(l)
  529. a=l.copy()
  530. b=[]
  531. for _ in range(len(a)):
  532. diff=sum(a,0)-sum(b,0)
  533. d=tuple((i,diff/2-e) for i,e in enumerate(a))
  534. print(list(d))
  535. i,v=max(d,key= lambda x: x[1])
  536. print(v)
  537. if v<=0:
  538. break
  539. del a[i]
  540. b.append(v)
  541. return a,b
  542.  
  543.  
  544.  
  545. ans=f(l)
  546. def f(l):
  547. l=list(l)
  548. a=l.copy()
  549. b=[]
  550. for _ in range(len(a)):
  551. diff=sum(a,0)-sum(b,0)
  552. d=tuple((i,e,diff/2-e) for i,e in enumerate(a))
  553. print(list(d))
  554. i,v,_=max(d,key= lambda x: x[2])
  555. print(v)
  556. if v<=0:
  557. break
  558. del a[i]
  559. b.append(v)
  560. return a,b
  561.  
  562.  
  563.  
  564. ans=f(l)
  565. def f(l):
  566. l=list(l)
  567. a=l.copy()
  568. b=[]
  569. for _ in range(len(a)):
  570. diff=sum(a,0)-sum(b,0)
  571. d=tuple((i,e,diff/2-e) for i,e in enumerate(a))
  572. print(list(d))
  573. i,v,_=min(d,key= lambda x: x[2])
  574. print(v)
  575. if _<=0:
  576. break
  577. del a[i]
  578. b.append(v)
  579. return a,b
  580.  
  581.  
  582.  
  583. ans=f(l)
  584. ans=score(ans)
  585. ans=t(l)
  586. ans=score(ans)
  587. ans=t(l)
  588. ans=score(ans)
  589. ans=F(l)
  590. ans=score(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement