davegimo

Untitled

Jun 4th, 2022
1,004
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.42 KB | None | 0 0
  1. # Scrivere una funzione che prende da Input:
  2.  
  3. # a) una matrice intera di dimensione 'n x n' (con n <= 500)
  4.  
  5. # b) un intero k
  6.  
  7. # verificare che una sottomatrice k x x sia un altopiano all'interno di M: si dice altopiano di una matrice se e solo se la diff. intercorsa tra gli elementi della matrice รจ al max 10 metri
  8.  
  9.  
  10. def val_max(M,riga,colonna,k):
  11.     max_num = 0
  12.  
  13.     for i in range(k):
  14.         for j in range(k):
  15.             if M[riga+i][colonna+j] >= max_num:
  16.                 max_num = M[riga+i][colonna+j]
  17.     return max_num
  18.            
  19.  
  20.  
  21.  
  22. def val_min(M,riga,colonna,k):
  23.     min_num = 100000
  24.     for i in range(k):
  25.         for j in range(k):
  26.             if M[riga+i][colonna+j] < min_num:
  27.                 min_num = M[riga+i][colonna+j]
  28.     return min_num
  29.  
  30.  
  31. def altopiano (M,i,j,k):
  32.     massimo = val_max(M,i,j,k)
  33.     minimo = val_min(M,i,j,k)
  34.     if massimo - minimo <= 10:
  35.         return True
  36.     return False
  37.  
  38.  
  39.  
  40. def esercizio_esame(M,k):
  41.     n = len(M)
  42.  
  43.     for i in range(n):
  44.         for j in range(n):
  45.             if i + k <= n and j + k <= n:
  46.                 if altopiano(M,i,j,k) is True:
  47.                     print(i,j)
  48.                     return True
  49.  
  50.     return False
  51.  
  52.  
  53.  
  54. M = [[1,2,3],
  55.      [300,400,500],
  56.      [300,400,500]]
  57.  
  58.  
  59. M = [[1,2,3,4,5],
  60.      [6,7,8,9,10],
  61.      [10,10,10,10,10],
  62.      [10,10,10,10,10],
  63.      [10,10,10,10,10]]
  64.  
  65.  
  66.  
  67.  
  68. print(esercizio_esame(M,4))
  69.  
  70.  
  71.  
Advertisement
Add Comment
Please, Sign In to add comment