1
- from math import comb
2
- from math import factorial
1
+ from math import comb , factorial
3
2
4
3
5
4
def validate_elements_count (
6
5
total_elements_count : int , selected_elements_count : int
7
6
) -> None :
8
- """Validate that the number of elements are positive and the total is greater than or equal to selected."""
7
+ """
8
+ Validate that the number of elements are positive and
9
+ the total is greater than or equal to selected.
10
+ Examples:
11
+ >>> validate_elements_count(6, 3)
12
+ >>> validate_elements_count(10, 5)
13
+
14
+ """
9
15
if total_elements_count < selected_elements_count or selected_elements_count < 0 :
10
16
raise ValueError (
11
- "Please enter positive integers for total_elements_count and selected_elements_count "
17
+ "Please enter positive integers for total_elements_count"
18
+ "and selected_elements_count "
12
19
"where total_elements_count >= selected_elements_count"
13
20
)
14
21
@@ -17,7 +24,8 @@ def combinations_iterative(
17
24
total_elements_count : int , selected_elements_count : int
18
25
) -> int :
19
26
"""
20
- Returns the number of combinations that can be made from a total set of elements.
27
+ Returns the number of combinations that can be made
28
+ from a total set of elements.
21
29
22
30
Examples:
23
31
>>> combinations_iterative(10, 5)
@@ -33,7 +41,9 @@ def combinations_iterative(
33
41
>>> combinations_iterative(-4, -5)
34
42
Traceback (most recent call last):
35
43
...
36
- ValueError: Please enter positive integers for total_elements_count and selected_elements_count where total_elements_count >= selected_elements_count
44
+ ValueError: Please enter positive integers for total_elements_count
45
+ and selected_elements_count where
46
+ total_elements_count >= selected_elements_count
37
47
"""
38
48
validate_elements_count (total_elements_count , selected_elements_count )
39
49
combinations_count = 1
@@ -91,7 +101,9 @@ def combinations_formula(
91
101
>>> combinations_formula(-4, -5)
92
102
Traceback (most recent call last):
93
103
...
94
- ValueError: Please enter positive integers for total_elements_count and selected_elements_count where total_elements_count >= selected_elements_count
104
+ ValueError: Please enter positive integers for
105
+ total_elements_count and selected_elements_count
106
+ where total_elements_count >= selected_elements_count
95
107
"""
96
108
validate_elements_count (total_elements_count , selected_elements_count )
97
109
remaining_elements_count = total_elements_count - selected_elements_count
@@ -121,7 +133,9 @@ def combinations_with_repetitions(
121
133
>>> combinations_with_repetitions(-4, -5)
122
134
Traceback (most recent call last):
123
135
...
124
- ValueError: Please enter positive integers for total_elements_count and selected_elements_count where total_elements_count >= selected_elements_count
136
+ ValueError: Please enter positive integers for
137
+ total_elements_count and selected_elements_count
138
+ where total_elements_count >= selected_elements_count
125
139
"""
126
140
validate_elements_count (total_elements_count , selected_elements_count )
127
141
if total_elements_count + selected_elements_count == 0 :
@@ -134,7 +148,8 @@ def combinations_with_repetitions(
134
148
135
149
def permutations (total_elements_count : int , selected_elements_count : int ) -> int :
136
150
"""
137
- Calculate the number of permutations of selecting k elements from n elements.
151
+ Calculate the number of permutations of selecting k elements
152
+ from n elements.
138
153
139
154
Examples:
140
155
>>> permutations(10, 5)
@@ -150,7 +165,9 @@ def permutations(total_elements_count: int, selected_elements_count: int) -> int
150
165
>>> permutations(-4, -5)
151
166
Traceback (most recent call last):
152
167
...
153
- ValueError: Please enter positive integers for total_elements_count and selected_elements_count where total_elements_count >= selected_elements_count
168
+ ValueError: Please enter positive integers for
169
+ total_elements_count and selected_elements_count
170
+ where total_elements_count >= selected_elements_count
154
171
"""
155
172
validate_elements_count (total_elements_count , selected_elements_count )
156
173
remaining_elements_count = total_elements_count - selected_elements_count
@@ -159,7 +176,8 @@ def permutations(total_elements_count: int, selected_elements_count: int) -> int
159
176
160
177
def possible_selections (total_elements_count : int , selected_elements_count : int ) -> int :
161
178
"""
162
- Calculate the number of possible selections of k items from n available items, with replacement.
179
+ Calculate the number of possible selections of k items
180
+ from n available items, with replacement.
163
181
164
182
Examples:
165
183
>>> possible_selections(10, 5)
@@ -175,7 +193,9 @@ def possible_selections(total_elements_count: int, selected_elements_count: int)
175
193
>>> possible_selections(-4, -5)
176
194
Traceback (most recent call last):
177
195
...
178
- ValueError: Please enter positive integers for total_elements_count and selected_elements_count where total_elements_count >= selected_elements_count
196
+ ValueError: Please enter positive integers for
197
+ total_elements_count and selected_elements_count
198
+ where total_elements_count >= selected_elements_count
179
199
"""
180
200
validate_elements_count (total_elements_count , selected_elements_count )
181
201
return int (total_elements_count ** selected_elements_count )
0 commit comments