Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 17 additions & 31 deletions src/llm_benchmark/control/double.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import List
from typing import List, Tuple


class DoubleForLoop:
Expand All @@ -12,12 +12,7 @@ def sum_square(n: int) -> int:
Returns:
int: Sum of squares of numbers from 0 to n
"""
sum_ = 0
for i in range(n):
for j in range(n):
if i == j:
sum_ += i * j
return sum_
return n * (n - 1) * (2 * n - 1) // 6

@staticmethod
def sum_triangle(n: int) -> int:
Expand All @@ -29,11 +24,7 @@ def sum_triangle(n: int) -> int:
Returns:
int: Sum of triangle of numbers from 0 to n
"""
sum_ = 0
for i in range(n):
for j in range(i + 1):
sum_ += j
return sum_
return n * (n + 1) * (n - 1) // 6

@staticmethod
def count_pairs(arr: List[int]) -> int:
Expand All @@ -47,16 +38,14 @@ def count_pairs(arr: List[int]) -> int:
Returns:
int: Number of pairs in the array
"""
count = 0
for i in range(len(arr)):
ndup = 0
for j in range(len(arr)):
if arr[i] == arr[j]:
ndup += 1
if ndup == 2:
count += 1

return count // 2
counts = {}
for x in arr:
counts[x] = counts.get(x, 0) + 1

pairs = 0
for count in counts.values():
pairs += count // 2
return pairs

@staticmethod
def count_duplicates(arr0: List[int], arr1: List[int]) -> int:
Expand All @@ -69,12 +58,9 @@ def count_duplicates(arr0: List[int], arr1: List[int]) -> int:
Returns:
int: Number of duplicates between the two arrays
"""
count = 0
for i in range(len(arr0)):
for j in range(len(arr1)):
if i == j and arr0[i] == arr1[j]:
count += 1
return count
set0 = set(arr0)
set1 = set(arr1)
return len(set0.intersection(set1))

@staticmethod
def sum_matrix(m: List[List[int]]) -> int:
Expand All @@ -87,7 +73,7 @@ def sum_matrix(m: List[List[int]]) -> int:
int: Sum of matrix of integers
"""
sum_ = 0
for i in range(len(m)):
for j in range(len(m[i])):
sum_ += m[i][j]
for row in m:
for val in row:
sum_ += val
return sum_