Skip to content

Commit 3488d0e

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent b2b9e08 commit 3488d0e

File tree

1 file changed

+28
-15
lines changed

1 file changed

+28
-15
lines changed

combinatorics/combinations.py

+28-15
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,21 @@
11
from math import comb
22
from math import factorial
33

4-
def validate_elements_count(total_elements_count: int, selected_elements_count: int) -> None:
5-
""" Validate that the number of elements are positive and the total is greater than or equal to selected. """
4+
5+
def validate_elements_count(
6+
total_elements_count: int, selected_elements_count: int
7+
) -> None:
8+
"""Validate that the number of elements are positive and the total is greater than or equal to selected."""
69
if total_elements_count < selected_elements_count or selected_elements_count < 0:
710
raise ValueError(
811
"Please enter positive integers for total_elements_count and selected_elements_count "
912
"where total_elements_count >= selected_elements_count"
1013
)
1114

1215

13-
def combinations_iterative(total_elements_count: int, selected_elements_count: int) -> int:
16+
def combinations_iterative(
17+
total_elements_count: int, selected_elements_count: int
18+
) -> int:
1419
"""
1520
Returns the number of combinations that can be made from a total set of elements.
1621
@@ -33,12 +38,14 @@ def combinations_iterative(total_elements_count: int, selected_elements_count: i
3338
validate_elements_count(total_elements_count, selected_elements_count)
3439
combinations_count = 1
3540
for i in range(selected_elements_count):
36-
combinations_count *= (total_elements_count - i)
37-
combinations_count //= (i + 1)
41+
combinations_count *= total_elements_count - i
42+
combinations_count //= i + 1
3843
return combinations_count
3944

4045

41-
def multiset_combinations(total_elements_count: int, selected_elements_count: int) -> int:
46+
def multiset_combinations(
47+
total_elements_count: int, selected_elements_count: int
48+
) -> int:
4249
"""
4350
Returns the number of combinations from a multiset of elements.
4451
@@ -59,10 +66,14 @@ def multiset_combinations(total_elements_count: int, selected_elements_count: in
5966
ValueError: n must be a non-negative integer
6067
"""
6168
validate_elements_count(total_elements_count, selected_elements_count)
62-
return comb(total_elements_count + selected_elements_count - 1, selected_elements_count)
69+
return comb(
70+
total_elements_count + selected_elements_count - 1, selected_elements_count
71+
)
6372

6473

65-
def combinations_formula(total_elements_count: int, selected_elements_count: int) -> int:
74+
def combinations_formula(
75+
total_elements_count: int, selected_elements_count: int
76+
) -> int:
6677
"""
6778
Calculate combinations using the formula for n choose k.
6879
@@ -85,12 +96,14 @@ def combinations_formula(total_elements_count: int, selected_elements_count: int
8596
validate_elements_count(total_elements_count, selected_elements_count)
8697
remaining_elements_count = total_elements_count - selected_elements_count
8798
return int(
88-
factorial(total_elements_count) /
89-
(factorial(selected_elements_count) * factorial(remaining_elements_count))
99+
factorial(total_elements_count)
100+
/ (factorial(selected_elements_count) * factorial(remaining_elements_count))
90101
)
91102

92103

93-
def combinations_with_repetitions(total_elements_count: int, selected_elements_count: int) -> int:
104+
def combinations_with_repetitions(
105+
total_elements_count: int, selected_elements_count: int
106+
) -> int:
94107
"""
95108
Calculate combinations with repetitions allowed.
96109
@@ -114,8 +127,8 @@ def combinations_with_repetitions(total_elements_count: int, selected_elements_c
114127
if total_elements_count + selected_elements_count == 0:
115128
return 1
116129
return int(
117-
factorial(total_elements_count + selected_elements_count - 1) /
118-
(factorial(selected_elements_count) * factorial(total_elements_count - 1))
130+
factorial(total_elements_count + selected_elements_count - 1)
131+
/ (factorial(selected_elements_count) * factorial(total_elements_count - 1))
119132
)
120133

121134

@@ -165,8 +178,8 @@ def possible_selections(total_elements_count: int, selected_elements_count: int)
165178
ValueError: Please enter positive integers for total_elements_count and selected_elements_count where total_elements_count >= selected_elements_count
166179
"""
167180
validate_elements_count(total_elements_count, selected_elements_count)
168-
return int(total_elements_count ** selected_elements_count)
181+
return int(total_elements_count**selected_elements_count)
169182

170183

171184
if __name__ == "__main__":
172-
__import__("doctest").testmod()
185+
__import__("doctest").testmod()

0 commit comments

Comments
 (0)