1128 - Jucarii
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>
- 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)
- Definim funcția pentru permutări
def permutari(n, m):
# Returnăm n! / (n-m)! return factorial(n) // factorial(n-m)
- Verificăm dacă acest fișier este rulat direct
if __name__ == "__main__":
m = int(input()) n = int(input()) print(permutari(n, m))
</syntaxhighlight>