3741 - StarsAndBars1: Difference between revisions

From Bitnami MediaWiki
No edit summary
 
Line 15: Line 15:
;ieșire
;ieșire
  4
  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==
Line 20: Line 26:
<syntaxhighlight lang="python" line="">
<syntaxhighlight lang="python" line="">
def factorial(x):
def factorial(x):
    if not (1 <= k):
        raise ValueError
    if not (n <= 500):
        raise ValueError
     if x == 0 or x == 1:
     if x == 0 or x == 1:
         return 1
         return 1

Latest revision as of 09:04, 21 November 2023

Cerința[edit | edit source]

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[edit | edit source]

Programul citește de la tastatură numerele naturale n k.

Date de ieșire[edit | edit source]

Programul va afișa pe ecran numărul C, reprezentând rezultatul.

Restricții și precizări[edit | edit source]

1 ≤ k , n ≤ 500

Exemplu[edit | edit source]

intrare
3 2
ieșire
4

Explicație[edit | edit source]

Avem n=3 bile și k=2 cutii. Cele 4 modalități de a plasa bilele sunt
1. ||***|
2.|*|**|
3.|**|*|
4.|***||

Rezolvare[edit | edit source]

Rezolvare ver.1[edit | edit source]

<syntaxhighlight lang="python" line=""> 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) </syntaxhighlight>