File tree Expand file tree Collapse file tree 3 files changed +55
-1
lines changed Expand file tree Collapse file tree 3 files changed +55
-1
lines changed Original file line number Diff line number Diff line change 1+ #!/usr/bin/env runacton
2+
3+ class Node(object):
4+ left: ?Node
5+ right: ?Node
6+ def __init__(self, left, right):
7+ self.left = left
8+ self.right = right
9+
10+ def make(depth: int) -> Node:
11+ if depth == 0:
12+ return Node(None, None)
13+ else:
14+ d = depth - 1
15+ return Node(make(d), make(d))
16+
17+ def check(node: Node) -> int:
18+ l = node.left
19+ r = node.right
20+ sum = 1
21+ if l is not None:
22+ sum += check(l)
23+ if r is not None:
24+ sum += check(r)
25+ return sum
26+
27+ def binary_tree(n: int):
28+ min_depth = 4
29+ max_depth = max([min_depth + 2, n], 0)
30+ stretch_depth = max_depth + 1
31+ print("stretch tree of depth %d\t check: %d" % (stretch_depth, check(make(stretch_depth))))
32+
33+ long_lived_tree = make(max_depth)
34+
35+ mmd = max_depth + min_depth
36+ for d in range(min_depth, stretch_depth, 2):
37+ i = 2 ** (mmd - d)
38+ cs = 0
39+ for _ in range(0, i, 1):
40+ cs += check(make(d))
41+ print("%d\t trees of depth %d\t check: %d" % (i, d, cs))
42+
43+ print("long lived tree of depth %d\t check: %d" % (max_depth, check(long_lived_tree)))
44+
45+ actor main(env):
46+ n = int(env.argv[1]) if len(env.argv) > 1 else 6
47+ binary_tree(n)
48+ await async env.exit(0)
Original file line number Diff line number Diff line change 1+ #!/usr/bin/env runacton
2+
13# port of 1.py
4+
25import math
36
47ln_tau = math.log(6.283185307179586)
Original file line number Diff line number Diff line change 11lang : acton
22problems :
3- - name : helloworld
3+ - name : binarytrees
44 source :
55 - 1.act
66 - name : edigits
77 source :
88 - 1.act
9+ - name : helloworld
10+ source :
11+ - 1.act
912 - name : nsieve
1013 source :
1114 - 1.act
You can’t perform that action at this time.
0 commit comments