Minimo / massimo

Individuare il valore minimo in una sequenze di valori numerici

Soluzione 1

Utilizza la funzione predefinita min()

lista = [2, 9, 1, 1, 9, 3, 5]
m = min(lista)  # 1

Soluzione 2

In una lista ordinata il valore minimo occupa il primo posto

...
lista.sort()  # [1, 1, 2, 3, 5, 9, 9] 
m = lista[0]  # 1

Soluzione 3

Assegna un valore temporaneo alla variabile m

...
m = lista[0]
for x in lista:
    if(x < m):
        m = x
  +---+----------+---+
  | x | x < m  ? | m |
  +---+----------+---+
  |   |          | 2 |
0 | 2 | 2 < 2 No | 2 |
1 | 9 | 9 < 2 No | 2 |
2 | 1 | 1 < 2 Sì | 1 | <--
3 | 1 | 1 < 1 No | 1 |
4 | 9 | 9 < 1 No | 1 |
5 | 3 | 3 < 1 No | 1 |
6 | 5 | 5 < 1 No | 1 | 
  +---+----------+---+

L’elemento alla posizione 0 viene confrontato con se stesso (?)

Soluzione 4

La scansione della lista parte dalla posizione 1

...
m = lista[0]
n = len(lista)
for i in range(1, n):
    x = lista[i]
    if(x < m):
        m = x
+---+---+----------+---+
| i | x | x < m  ? | m |
+---+---+----------+---+
|   |   |          | 2 |
| 1 | 9 | 9 < 2 No | 2 |
| 2 | 1 | 1 < 2 Sì | 1 | <--
| 3 | 1 | 1 < 1 No | 1 |
| 4 | 9 | 9 < 1 No | 1 |
| 5 | 3 | 3 < 1 No | 1 |
| 6 | 5 | 5 < 1 No | 1 | 
+--+---+----------+---+

Soluzione 5

Si semplifica il codice se si conosce il valore MASSIMO dell’intervallo di valori ammessi nella lista

...
MASSIMO = 100
m = MASSIMO+1 
for x in lista: 
    if(x < m): 
        m = x
  +---+------------+-----+
  | x | x < m    ? |  m  |
  +---+------------+-----+
  |   |            | 101 |
0 | 2 | 2 < 101 Sì |   2 | <--
1 | 9 | 9 <   2 No |   2 |
2 | 1 | 1 <   2 Sì |   1 | <--
3 | 1 | 1 <   1 No |   1 |
4 | 9 | 9 <   1 No |   1 |
5 | 3 | 3 <   1 No |   1 |
6 | 5 | 5 <   1 No |   1 | 
  +---+------------+-----+

Soluzione 6

Da Python 3.5, math.inf (infinito) è una costante simbolica per il numero più grande.
Prima di iniziare i confronti la assegniamo al valore minimo e al primo confronto verrà sostituita!

...
m = math.inf 
for x in lista: 
    if(x < m): 
        m = x
  +---+------------+-----+
  | x | x < m    ? |  m  |
  +---+------------+-----+
  |   |            | *** |
0 | 2 | 2 < *** Sì |   2 | <--
1 | 9 | 9 <   2 No |   2 |
2 | 1 | 1 <   2 Sì |   1 | <--
3 | 1 | 1 <   1 No |   1 |
4 | 9 | 9 <   1 No |   1 |
5 | 3 | 3 <   1 No |   1 |
6 | 5 | 5 <   1 No |   1 | 
  +---+------------+-----+

Massimo

Individuare il valore MASSIMO in una sequenze di valori?

Utilizza la funzione predefinita max()

M = max(lista)

In una lista ordinata il valore massimo occupa l’ultimo posto

lista.sort() 
M = lista[len(lista)-1]

oppure

lista.sort() 
M = lista[-1]

Se la lista è ordinata in ordine decrescente…

lista.sort(reverse=True) 
M = lista[0]

Continua tu …