hw04

.py

School

University of California, Berkeley *

*We aren’t endorsed by this school

Course

61A

Subject

Computer Science

Date

Apr 3, 2024

Type

py

Pages

4

Uploaded by rayleehe

Report
HW_SOURCE_FILE = 'hw04.py' ############### # Questions # ############### def intersection(st, ave): """Represent an intersection using the Cantor pairing function.""" return (st+ave)*(st+ave+1)//2 + ave def street(inter): return w(inter) - avenue(inter) def avenue(inter): return inter - (w(inter) ** 2 + w(inter)) // 2 w = lambda z: int(((8*z+1)**0.5-1)/2) def taxicab(a, b): """Return the taxicab distance between two intersections. >>> times_square = intersection(46, 7) >>> ess_a_bagel = intersection(51, 3) >>> taxicab(times_square, ess_a_bagel) 9 >>> taxicab(ess_a_bagel, times_square) 9 """ return (abs(street(a)-street(b))) + (abs(avenue(a)-avenue(b))) def squares(s): """Returns a new list containing square roots of the elements of the original list that are perfect squares. >>> seq = [8, 49, 8, 9, 2, 1, 100, 102] >>> squares(seq) [7, 3, 1, 10] >>> seq = [500, 30] >>> squares(seq) [] """ mylist = [] for x in s: root = (x ** (1/2)) if x % root == 0: mylist.append(round(root)) return mylist def g(n): """Return the value of G(n), computed recursively. >>> g(1) 1 >>> g(2) 2 >>> g(3) 3 >>> g(4) 10
>>> g(5) 22 >>> from construct_check import check >>> check(HW_SOURCE_FILE, 'g', ['While', 'For']) True """ sum = 0 if n == 0: return 0 elif n <= 3: return n else: sum += g(n - 1) + 2 * g(n - 2) + 3 * g(n - 3) return sum def g_iter(n): """Return the value of G(n), computed iteratively. >>> g_iter(1) 1 >>> g_iter(2) 2 >>> g_iter(3) 3 >>> g_iter(4) 10 >>> g_iter(5) 22 >>> from construct_check import check >>> check(HW_SOURCE_FILE, 'g_iter', ['Recursion']) True """ sum = 0 i, x, y, z = 4, 3, 2, 1 if n <= 3: return n else: while i <= n: sum = x + 2 * y + 3 * z x, y, z = sum, x, y i += 1 return sum def count_change(amount): """Return the number of ways to make change for amount. >>> count_change(7) 6 >>> count_change(10) 14 >>> count_change(20) 60 >>> count_change(100) 9828 >>> from construct_check import check >>> check(HW_SOURCE_FILE, 'count_change', ['While', 'For']) True """ m = 2 ** amount
Your preview ends here
Eager to read complete document? Join bartleby learn and gain access to the full version
  • Access to all documents
  • Unlimited textbook solutions
  • 24/7 expert homework help