Suite de robinson

Contenu du snippet

Voici un code qui permet de générer la suite de Robinson.
Plus d'informations sur la suite de Robinson peuvent être trouvées sur http://fr.wikipedia.org/wiki/Suite_de_Robinson

Veuillez m'excuser pour le manque de commentaires, mais il me semble que le code est assez clair pour ne pas en avoir besoin. Vous pouvez me demander des renseignements sur toute partie du code que vous ne comprenez pas, je me ferais un plaisir de vous repondre :)

Source / Exemple :


<?

/* Suite de Robinson */

function robinson ($entree)
{
    $sortie = array();

    for ($i = 0; isset ($entree{$i}); $i++)
    {
        if (isset ($sortie[$entree{$i}]))
        {
            $sortie[$entree{$i}]++;
        }
        else
        {
            $sortie[$entree{$i}] = 1;
        }
    }

    $return = "";

    for ($i = 9; $i >= 0; $i--)
    {
        if (isset($sortie[$i]) && $sortie[$i] != 0)
        {
            $return .= $sortie[$i].$i;
        }
    }

    return ($return);
}

$sortie = "0";

for ($i = 1; $i <= 20; $i++)
{
    echo "$i.$sortie<br />";
    $sortie = robinson ($sortie);
}

?>

Conclusion :


Il est possible de changer le nombre de lignes a calculer a la ligne : for ($i = 1; $i <= 20; $i++)
Il suffit de remplacer 20 par le nombre de lignes a calculer.

De nombreuses améliorations sont possibles :
- Wikipedia annonce que la suite se stabilise a partir d'un certain nombre de lignes, on peut faire un script qui recherche cette ligne et affiche la suite avant cette ligne.
- Certaines chaines de départ forment une suite qui ne se stabilise pas, mais qui occille entre plusieurs valeurs. Il est aussi possible de retrouver a partir de quelle ligne commence l'occillation, et ensuite donner le nombre de lignes sur lesquelles s'effectue l'occillation.
- Améliorer la qualité du script, et son implémentation.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.