mirror of
https://github.com/python/cpython.git
synced 2025-10-09 16:34:44 +00:00
bpo-37295: Use constant-time comb() and perm() for larger n depending on k (GH-30305)
This commit is contained in:
parent
5c66414b55
commit
2d787971c6
2 changed files with 190 additions and 134 deletions
|
@ -1889,8 +1889,8 @@ class MathTests(unittest.TestCase):
|
|||
perm = math.perm
|
||||
factorial = math.factorial
|
||||
# Test if factorial definition is satisfied
|
||||
for n in range(100):
|
||||
for k in range(n + 1):
|
||||
for n in range(500):
|
||||
for k in (range(n + 1) if n < 100 else range(30) if n < 200 else range(10)):
|
||||
self.assertEqual(perm(n, k),
|
||||
factorial(n) // factorial(n - k))
|
||||
|
||||
|
@ -1953,8 +1953,8 @@ class MathTests(unittest.TestCase):
|
|||
comb = math.comb
|
||||
factorial = math.factorial
|
||||
# Test if factorial definition is satisfied
|
||||
for n in range(100):
|
||||
for k in range(n + 1):
|
||||
for n in range(500):
|
||||
for k in (range(n + 1) if n < 100 else range(30) if n < 200 else range(10)):
|
||||
self.assertEqual(comb(n, k), factorial(n)
|
||||
// (factorial(k) * factorial(n - k)))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue