0993 - Gen Mat 20: Difference between revisions
Adina Timiș (talk | contribs) Pagină nouă: ==Cerința== Scrieţi un program care citeşte de la tastatură un număr natural n şi construieşte în memorie o matrice cu n linii şi n coloane în care fiecare linie a matricei să conţină o permutare a mulţimii {1,2,...,n}, astfel încât pe linii diferite ale matricei să se afle permutări diferite. ==Date de intrare== Programul citește de la tastatură numărul n. ==Date de ieșire== Programul afișează pe ecran matricea construită, câte o linie a matricei p... |
Adina Timiș (talk | contribs) No edit summary |
||
Line 14: | Line 14: | ||
;Ieșire | ;Ieșire | ||
:Datele de intrare corespund restricțiilor impuse. | :Datele de intrare corespund restricțiilor impuse. | ||
:1 4 2 3 | |||
:3 1 2 4 | |||
:3 4 1 2 | |||
:2 4 1 3 | :2 4 1 3 | ||
==Exemplul 2== | ==Exemplul 2== | ||
;Intrare | ;Intrare | ||
Line 24: | Line 24: | ||
:Datele de intrare nu corespund restricțiilor impuse. | :Datele de intrare nu corespund restricțiilor impuse. | ||
==Rezolvare== | ==Rezolvare== | ||
<syntaxhighlight lang="python" line=""> | <syntaxhighlight lang="python" line="1"> | ||
#0993 - Gen Mat 20 | #0993 - Gen Mat 20 | ||
import random | import random | ||
def construieste_matrice(n): | def construieste_matrice(n): | ||
A = [] | A = [] # initializam matricea goala | ||
for i in range(n): | for i in range(n): # parcurgem liniile matricei | ||
permutare = list(range(1, n+1)) | permutare = list(range(1, n+1)) # initializam o lista cu numerele de la 1 la n | ||
random.shuffle(permutare) | random.shuffle(permutare) # amestecam aleator elementele listei permutare | ||
A.append(permutare) | A.append(permutare) # adaugam permutarea in matricea A | ||
return A | return A | ||
if __name__ == "__main__": | if __name__ == "__main__": | ||
n = int(input("Introduceti n: ")) | n = int(input("Introduceti n: ")) | ||
if n < 3 or n > 15: | if n < 3 or n > 15: # verificam daca n respecta restrictiile impuse | ||
print("Datele de intrare nu corespund restricțiilor impuse.") | print("Datele de intrare nu corespund restricțiilor impuse.") | ||
else: | else: | ||
print("Datele de intrare corespund restricțiilor impuse.") | print("Datele de intrare corespund restricțiilor impuse.") | ||
A = construieste_matrice(n) | A = construieste_matrice(n) # generam matricea conform dimensiunii n | ||
for rand in A: | for rand in A: # afisam matricea linie cu linie | ||
print(" ".join(str(x) for x in rand)) | print(" ".join(str(x) for x in rand)) # convertim fiecare element la sir il afisam | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 21:37, 28 April 2023
Cerința[edit | edit source]
Scrieţi un program care citeşte de la tastatură un număr natural n şi construieşte în memorie o matrice cu n linii şi n coloane în care fiecare linie a matricei să conţină o permutare a mulţimii {1,2,...,n}, astfel încât pe linii diferite ale matricei să se afle permutări diferite.
Date de intrare[edit | edit source]
Programul citește de la tastatură numărul n.
Date de ieșire[edit | edit source]
Programul afișează pe ecran matricea construită, câte o linie a matricei pe câte o linie a ecranului, elementele fiecărei linii fiind separate prin câte un spaţiu.
Restricții și precizări[edit | edit source]
- 3 ≤ n ≤ 15
- orice matrice afișată care respectă condițiile problemei este corectă
Exemplul 1[edit | edit source]
- Intrare
- 4
- Ieșire
- Datele de intrare corespund restricțiilor impuse.
- 1 4 2 3
- 3 1 2 4
- 3 4 1 2
- 2 4 1 3
Exemplul 2[edit | edit source]
- Intrare
- 2
- Ieșire
- Datele de intrare nu corespund restricțiilor impuse.
Rezolvare[edit | edit source]
<syntaxhighlight lang="python" line="1">
- 0993 - Gen Mat 20
import random
def construieste_matrice(n):
A = [] # initializam matricea goala for i in range(n): # parcurgem liniile matricei permutare = list(range(1, n+1)) # initializam o lista cu numerele de la 1 la n random.shuffle(permutare) # amestecam aleator elementele listei permutare A.append(permutare) # adaugam permutarea in matricea A return A
if __name__ == "__main__":
n = int(input("Introduceti n: ")) if n < 3 or n > 15: # verificam daca n respecta restrictiile impuse print("Datele de intrare nu corespund restricțiilor impuse.") else: print("Datele de intrare corespund restricțiilor impuse.") A = construieste_matrice(n) # generam matricea conform dimensiunii n for rand in A: # afisam matricea linie cu linie print(" ".join(str(x) for x in rand)) # convertim fiecare element la sir il afisam
</syntaxhighlight>