You are on page 1of 1

1.

Jalankan 8 code ini


2. Tuliskan codenya dalam sebuah lembar kerja word
3. Kirimkan ke grup kelas informatika

def binary_search(arr, target): def filter_list(arr, condition):


if not arr: if not arr:
return -1 return []
mid = len(arr) // 2 head, tail = arr[0], arr[1:]
if arr[mid] == target: if condition(head):
return mid return [head] + filter_list(tail, condition)
elif arr[mid] < target: else:
result = binary_search(arr[mid+1:], target) return filter_list(tail, condition)
if result == -1:
return -1
else:
return mid + 1 + result
else:
return binary_search(arr[:mid], target)
def power(base, exponent): def sum_matrix(matrix):
if exponent == 0: if not matrix:
return 1 return 0
else: return sum(matrix[0]) +
return base * power(base, exponent - 1) sum_matrix(matrix[1:])
def find_path(maze, start, end): def combinations(arr, k):
if start == end: if k == 0:
return [end] return [[]]
x, y = start if not arr:
if maze[x][y] == 1: return []
return [] head, tail = arr[0], arr[1:]
if x < len(maze)-1 and maze[x+1][y] == 0: without_head = combinations(tail, k)
down_path = find_path(maze, (x+1, y), with_head = [ [head] + c for c in
end) combinations(tail, k-1) ]
if down_path: return without_head + with_head
return [(x, y)] + down_path
if y < len(maze[0])-1 and maze[x][y+1] == 0:
right_path = find_path(maze, (x, y+1), end)
if right_path:
return [(x, y)] + right_path
return []
def permutations(arr): def fibonacci(n):
if len(arr) == 0: if n <= 0:
return [[]] return 0
else: elif n == 1:
result = [] return 1
for i in range(len(arr)): else:
rest = arr[:i] + arr[i+1:] return fibonacci(n - 1) + fibonacci(n - 2)
for p in permutations(rest):
result.append([arr[i]] + p)
return result

You might also like