3741 - StarsAndBars1
De la Universitas MediaWiki
Cerința
Gigel are n bile și k cutii. În câte moduri poate plasa Gigel bilele în cutii, știind că pot rămâne și cutii goale.
Date de intrare
Programul citește de la tastatură numerele naturale n k.
Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând rezultatul.
Restricții și precizări
1 ≤ k , n ≤ 500
Exemplu
- intrare
3 2
- ieșire
4
Explicație
- Avem n=3 bile și k=2 cutii. Cele 4 modalități de a plasa bilele sunt
- 1. ||***|
- 2.|*|**|
- 3.|**|*|
- 4.|***||
Rezolvare
Rezolvare ver.1
def factorial(x):
if not (1 <= k):
raise ValueError
if not (n <= 500):
raise ValueError
if x == 0 or x == 1:
return 1
else:
return x * factorial(x-1)
def coeficient_binomial(n, k):
return factorial(n + k - 1) // (factorial(k - 1) * factorial(n - 1))
n, k = map(int, input("Introduceți valorile lui n și k (separate prin spațiu): ").split())
rezultat = coeficient_binomial(n + k - 1, k - 1)
print("Numărul de moduri în care Gigel poate plasa bilele în cutii este:", rezultat)