Corsi on-line

Verificare i numeri mancanti da una sequenza

In questo articolo voglio proporre un semplice trucchetto che però potrebbe risultare particolarmente utile in alcuni casi: si immagini quindi di dover gestire una sequenza numerica del genere:

1,3,4,5,7,9,11

La sua caratteristica è quella di non restituire una sequenza completa, dopo l'”1″ abbiamo il “3”, dopo il “5” il “7” e così via; ora si supponga di voler inserire all’interno della sequenza i numeri mancanti senza però farlo manualmente; impossibile? In verità la soluzione è abbastanza semplice, come dimostra il codice seguente:

<?php
# definiamo l'array
$vettore = array(1,3,4,5,7,9,11);
# contiamo gli elementi dell'array
$l = count($vettore);
# calcoliamo le differenze tra i numeri
for($i=0; $i<=$l-1; $i++)
  {
  $differenza = $vettore[$i+1]-$vettore[$i];
  # se la differenza tra un numero e quello successivo non è 1..
   if($differenza != 1)
      {
       for($y=1; $y<=$differenza-1; $y++)
       {
	   # .. viene aggiunto il valore mancante
       $val = $vettore[$i]+$y;
	   # stampiamo i valori mancanti
       echo $val;
       }
  }
}
?>

Il semplice codice proposto può essere particolarmente utile nel caso in cui ci si trovi a gestire sequenze numeriche molto lunghe per le quali, pertanto, risulti impossibile (o eccessivamente oneroso) un intervento di tipo manuale.

Post correlati
I più letti del mese
Tematiche