This commit is contained in:
2025-02-06 17:11:17 +01:00
parent 55c62ffc5a
commit fb313143a1
5 changed files with 95 additions and 0 deletions

View File

@ -0,0 +1,4 @@
def fib(n: int) -> int:
if n in {0, 1}:
return n
return fib(n - 1) + fib(n - 2)

View File

@ -0,0 +1,17 @@
import math
def knapsack(items: list[tuple[float, float]], n: int, cap: float) -> float:
if (cap < 0):
return -math.inf
if (n == len(items)):
return 0
return max(
knapsack(items, n + 1, cap),
items[n][0] + knapsack(items, n + 1, cap - items[n][1])
)
if __name__ == '__main__':
print(knapsack([(100, 10), (70, 4), (50, 6), (10, 12)], 0, 12))

View File

@ -0,0 +1,24 @@
from dataclasses import dataclass
from typing import Optional
@dataclass
class Node[T]:
mark: T
left: 'Optional[Node[T]]' = None
right: 'Optional[Node[T]]' = None
type Tree[T] = Optional[Node[T]]
def insert[T](t: Tree[T], value: T) -> Tree[T]:
if t is None:
return Node(value)
if value < t.mark:
t.left = insert(t.left, value)
else:
t.right = insert(t.right, value)
return t