Author Archives: admin

Liste e ricerche

Consulta le funzioni disponibili


Appartenenza


Posizione


Numero di occorrenze


Esistono molti algoritmi classici per effettuare una ricerca in una lista

Liste e ordinamenti

Consulta le funzioni disponibili


Ordinare una lista, in ordine crescente


Ordinare una lista in ordine decrescente


Ordinare una lista, senza alterarla


Ordinare con un criterio diverso

  • key = abs | round | …

Ordinare rispetto all’elemento i-esimo delle sottoliste


Esistono molti algoritmi classici per ordinare una sequenza di dati, consulta

Esercizi con matrici


Una matrice


  1. Somma, prodotto, …, dei numeri contenuti?
  2. Somma, prodotto, …, dei numeri contenuti, per righe, per colonne?
  3. Minimo, massimo?
  4. Media aritmetica, geometrica, quadratica, armonica?
  5. Moda, mediana, varianza, scarto quadratico medio?
  6. Scambiare le righe con le colonne
  7. Controllare se è nulla, identità, diagonale, diagonale superiore/inferiore, …
  8. Caricarla in modo che diventi nulla/identità/…
  9. Caricare con numeri progressivi, 1,2,3,… per righe, per colonne
  10. Prodotto per uno scalare

CASUALITÀ

  1. Scegliere un elemento a caso
  2. Mescolare il contenuto
  3. Caricare con numeri casuali in [0, 1[
  4. Caricare con numeri casuali in [a, b]
  5. Caricare con numeri casuali in [x1, x2[

Due matrici


  1. Sono compatibili per addizione/sottrazione?
  2. Sono compatibili per la moltiplicazione
  3. Contengono la stessa somma/prodotto di numeri?
  4. Sono uguali, posizione per posizione?
  5. Contengono gli stessi numeri, anche se in ordine diverso?
  6. Tutti i numeri della prima sono minori o uguali di tutti i numeri della seconda?
  7. Addizione/sottrazione/prodotto/…

Tre matrici


Esercizi con liste di numeri


Una lista di numeri


  1. Caricare con zeri
  2. Capovolgere
  3. I numeri sono in ordine crescente?
  4. Somma, prodotto, …?
  5. Minimo, massimo?
  6. Media aritmetica, geometrica, quadratica, armonica?
  7. Media pesata?
  8. Media troncata?
  9. Moda, mediana, varianza, scarto quadratico medio?

CASUALITÀ

  1. Scegliere un elemento a caso
  2. Mescolare
  3. Caricare con numeri casuali in [0, 1[
  4. Caricare con numeri casuali in [a, b]
  5. Caricare con numeri casuali in [x1, x2[

VETTORI

  1. Norma?
  2. Prodotto per uno scalare

Due liste di numeri


  1. Media pesata (della prima lista con i pesi nella seconda lista)
  2. Hanno la stessa lunghezza?
  3. Sono uguali, posizione per posizione?
    1. Tutte le coppie verificano c1[i] < c2[i]
    2. Tutte le coppie verificano c1[i] <= c2[i]
    3. Tutte le coppie verificano c1[i] != c2[i]
  4. Contengono gli stessi numeri, anche se in ordine diverso?
  5. Tutti i numeri della prima lista sono minori o uguali di tutti i numeri della seconda lista?
  6. Contengono la stessa somma di numeri?

VETTORI

  1. Somma, differenza
  2. Prodotto scalare
  3. Prodotto vettoriale
  4. Sono linearmente indipendenti?

Tre liste di numeri


Divisori di un numero

Libro di testo – Pagina 186 numero 2

Caricare in una lista i divisori di un numero (< 10.000) e visualizzarli


Una cella per ogni possibile divisore da 1 a NUM

Se si utilizza un indice per i divisori, possono essere memorizzati adiacenti


Quanti possono essere i divisori per un numero minore di 10.000?

  • NUM=2 –> 1, 2
  • NUM=10 –> 1, 2, 5, 10
  • NUM=20 –> 1, 2, 4, 5, 10, 20

Non più di 100!


In alcuni casi i divisori sono molto pochi e la percentuale di riempimento della lista sarebbe bassissima.
Con append() la lista nasce vuota e aumenta in lunghezza secondo le necessità.

L’uso dinamico della memoria

  • permette di abbassare lo spreco di memoria
  • a scapito di un aumento del tempo di esecuzione del codice.

Indagine definitiva


Con il codice seguente

ottieni il numero di divisori per ognuno dei numeri minori di 10.000.


Stampa la classifica dei 12 numeri con maggior numero di divisori

Eccola!

(64, 9240)
(64, 7560)
(60, 9360)
(60, 8400)
(60, 7920)
(60, 5040)
(56, 8640)
(56, 6720)
(54, 9900)
(54, 8820)
(54, 7200)
(54, 6300)