3741 - StarsAndBars1: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==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 ==Rezolvare== ===Rezolvare ver.1=== <syntaxhighlight lang="python" line=""> def factor...
 
No edit summary
 
(3 intermediate revisions by one other user not shown)
Line 1: Line 1:
==Cerința==
==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.
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==
==Date de intrare==
Programul citește de la tastatură numerele naturale n k.
Programul citește de la tastatură numerele naturale n k.
Line 7: Line 8:


==Restricții și precizări==
==Restricții și precizări==
1 ≤ k , n ≤ 500
'''1 ≤ k , n ≤ 500'''
 
==Exemplu==
==Exemplu==
;intrare
;intrare
:3,2
3 2
;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==
===Rezolvare ver.1===
===Rezolvare ver.1===
<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>