0993 - Gen Mat 20: Difference between revisions

From Bitnami MediaWiki
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...
 
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
:3 2 1 4
:1 2 4 3
:1 4 2 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">

  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>