1128 - Jucarii

From Bitnami MediaWiki
Revision as of 16:37, 24 October 2023 by AntalKrisztian (talk | contribs) (Pagină nouă: == Cerinţa == La o grădiniță, cei '''m''' copii de la grupa mică s-au trezit în fața a '''n''' jucării diferite. Cel mai isteț dintre ei vă întreabă în câte moduri ar putea să-și aleagă fiecare câte o jucărie ? == Date de intrare == Programul citește de la tastatură numerele naturale '''m''' și '''n'''. == Date de ieşire == Programul va afișa pe ecran numărul '''q''', reprezentând numărul de moduri în care pot să-și aleagă fiecare câte o jucăr...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Cerinţa

La o grădiniță, cei m copii de la grupa mică s-au trezit în fața a n jucării diferite. Cel mai isteț dintre ei vă întreabă în câte moduri ar putea să-și aleagă fiecare câte o jucărie ?

Date de intrare

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

Date de ieşire

Programul va afișa pe ecran numărul q, reprezentând numărul de moduri în care pot să-și aleagă fiecare câte o jucărie. Pentru că acest număr poate fi foarte mare, se va afișa modulo 224737.

Restricții și precizări

  • 1 ⩽ n, m ⩽ 100.000
  • grădinița este virtuală

Exemplu

Intrare
2 4
Ieșire
12

Explicație

Avem 2 copii și 4 jucării ( notate a, b, c, d ). Cei doi copii pot lua jucăriile (a,b), (a,c), (a,d), (b,c), (b,d), (c,d), (b,a), (c,a), (d,a), (c,b), (d,b), (d,c), în total 12 variante de alegere.

Rezolvare

<syntaxhighlight lang="python" line>

  1. Definim funcția pentru calculul factorialului

def factorial(n):

   # Dacă numărul este 0, returnăm 1
   if n == 0:
       return 1
   else:
       # Altfel, returnăm n înmulțit cu factorialul lui n-1
       return n * factorial(n-1)
  1. Definim funcția pentru permutări

def permutari(n, m):

   # Returnăm n! / (n-m)!
   return factorial(n) // factorial(n-m)
  1. Verificăm dacă acest fișier este rulat direct

if __name__ == "__main__":

   m = int(input())
   n = int(input())
   print(permutari(n, m))

</syntaxhighlight>