begin process at 2010 03 21 19:05:12
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > SUITE LOGIQUE

SUITE LOGIQUE


 Information sur la source

Note :
7,5 / 10 - par 2 personnes
7,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Maths & Algorithmes Classé sous :Maths, Logique, Suite, algorithme Niveau :Débutant Date de création :17/08/2008 Vu :4 141

Auteur : Palleas_44

Ecrire un message privé
Site perso
Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

 Description

Une suite logique que j'ai découvert dans un des livres de Bernard Werber :

1
11
21
1211
111221
312211
etc...

La voici adaptée en php, ça ne sert pas à grand chose mais bon, ça affute l'esprit comme dirait l'autre ;).

Source

  • <?php
  • $loop = 20; // on le fait "$loop" fois
  • $line = '1';
  • for($i=0;$i<$loop;$i++) {
  • echo $line; // on affiche la derniere ligne
  • $l = strlen($line); // on recupere la taille de la chaine
  • $nb = 0; // on initialise le nombre d'occurence
  • $curLine = ''; // on initialise ce qui deviendra la ligne suivante
  • for($j=0;$j<=$l;$j++) { // pour chaque lettre de la ligne precedente
  • if($j===0) { // si on est au premier caractere c'est forcement une premiere occurence
  • $nb++; // on incremente
  • } else if($j!==$l && $line[$j-1]===$line[$j]) { // si la lettre precedente est la même que l'actuelle
  • $nb++; // on incremente
  • } else { // sinon
  • $curLine .= $nb.$line[$j-1]; // on ajoute le nombre d'occurence de la lettre precedente et la lettre precendente a ce qui deviendra la ligne suivante
  • $nb = 1; // on reinitilalise le nombre d'occurence (pas la meme lettre donc forcement premiere occurence)
  • }
  • }
  • $line = $curLine; // la prochaine ligne à parser est celle que l'on a construit
  • echo '<br/>'; // saut de ligne sinon c'est pas beau (et on ne comprend rien accesoirement)
  • }
  • ?>
<?php 
$loop = 20; // on le fait "$loop" fois
$line = '1';

for($i=0;$i<$loop;$i++) {
    echo $line;         // on affiche la derniere ligne
    $l = strlen($line); // on recupere la taille de la chaine
    $nb = 0;            // on initialise le nombre d'occurence
    $curLine = '';        // on initialise ce qui deviendra la ligne suivante
    for($j=0;$j<=$l;$j++) { // pour chaque lettre de la ligne precedente
        if($j===0) {        // si on est au premier caractere c'est forcement une premiere occurence
            $nb++;            // on incremente
        } else if($j!==$l && $line[$j-1]===$line[$j]) { // si la lettre precedente est la même que l'actuelle
             $nb++;            // on incremente
        } else {            // sinon
            $curLine .= $nb.$line[$j-1]; // on ajoute le nombre d'occurence de la lettre precedente et la lettre precendente a ce qui deviendra la ligne suivante
            $nb = 1;    // on reinitilalise le nombre d'occurence (pas la meme lettre donc forcement premiere occurence)
        }
    }
    $line = $curLine;    // la prochaine ligne à parser est celle que l'on a construit
    echo '<br/>';    // saut de ligne sinon c'est pas beau (et on ne comprend rien accesoirement)
}
?>



 Sources du même auteur

Source avec Zip CLASSE DE MINIATURISATION D'IMAGE
Source avec Zip [FONCTION RÉCURSIVE] DETERMINER LE PGDC DE DEUX NOMBRES
Source avec Zip MINIATURISATION D'IMAGE V2
CRÉATION D'UNE IMAGE MINIATURE

 Sources de la même categorie

Source avec une capture CALCUL DE TVA MARGE AVEC REMISE FOURNISSEUR SPÉCIALE POUR LE... par lcomb
Source avec Zip EVALUER UNE EXPRESSION À PARTIR D'UNE CHAINE DE CARACTÈRE par TheWeasel47
FONCTION EQUATION LÉGÈRE par ff5
Source avec Zip Source avec une capture TRACEUR DE COURBE EN COORDONNÉES CARTÉSIENNES (MAJ) par fredbonmatin
CONVERTIR LES RÉFÉRENCES DE COLONNE EXCEL DE CHIFFRE EN LETT... par computman007

 Sources en rapport avec celle ci

Source avec Zip EVALUER UNE EXPRESSION À PARTIR D'UNE CHAINE DE CARACTÈRE par TheWeasel47
Source avec une capture IMAGES GENETIQUES par coucou747
Source avec Zip LABYRINTHES EN PHP (GD + HTML) GÉNÉRATION + RÉSOLUTION par nax333
Source avec Zip PYTHAGORE, CA RECIPROQUE ET SON THEOREME par samychtran
Source avec Zip [FONCTION RÉCURSIVE] DETERMINER LE PGDC DE DEUX NOMBRES par Palleas_44

Commentaires et avis

Commentaire de webdeb le 17/08/2008 18:25:44 10/10

T'aurais pu faire une fonction sérieux ^^

Commentaire de Palleas_44 le 17/08/2008 18:27:27

Pouarf non, c'était simplement l'algorithme qu'il faut retenir, vu qu'à la base ça ne sert à rien :p

Commentaire de neigedhiver le 18/08/2008 17:46:48

Salut,

Il s'agit de la suite de Conway :
http://fr.wikipedia.org/wiki/Suite_de_Conway#cite_ref-0

Sur l'article Wikipedia, on trouve même comment faire ça en PHP... Avec une fonction, ce qui est très très important, justement, pour l'algo, puisqe sans, on ne peut pas faire de récursivité... La source présentée dans l'article n'affiche qu'une seule ligne définie de la suite, mais avec deux lignes de code en plus (dont une pour une variable statique) on obtient quelque chose de très satisfaisant et en plus de très élégant.

Commentaire de Palleas_44 le 18/08/2008 18:10:09

Effectivement, en faire une fonction récursive est plutôt malin, autant pour moi.
Par contre pour moi, il n'y a ABSOLUMENT rien d'élégant à utiliser une variable globale ;)

Commentaire de Palleas_44 le 18/08/2008 18:10:33

(Mais merci pour le nom, je me le suis toujours demandé !)

Commentaire de neigedhiver le 18/08/2008 18:23:30

On peut changer les globales en variables statiques dans la fonction... C'est pas la fin du monde...

Commentaire de Palleas_44 le 18/08/2008 18:30:01

ah mais ce n'est pas ce que je dis, je dis juste que ce n'est pas élégant :p

Commentaire de The Red Man le 19/08/2008 15:03:05

lol ! j'ai déjà eu a faire ça en colle de JAVA (ou c'était juste un exo de td je sais plus ^^) en 1ere année de DUT. Mais effectivement tu aurais du faire une méthode ou même mieux une classe static Suites dans laquelle tu écris toutes les méthodes correspondantes au Suites. Ou encore mieux, une interface Suites ainsi que toutes les classes SuitesX (Avec X nom de la suite) implémentant cette classe.

Commentaire de thedeejay le 20/08/2008 19:28:30

héhé...
c'est une epreuve de newbiecontest...

Commentaire de FaustXVI le 26/10/2008 00:16:57 5/10

Salut,

je reprendrai les idées des autres en disant que tu aurait au minimum put faire une fonction...
Mais surtout je pense que tu aurai pu optimiser ton code!!

Remplacer :

#  $nb = 0; // on initialise le nombre d'occurence
# for($j=0;$j<=$l;$j++) { // pour chaque lettre de la ligne precedente
# if($j===0) { // si on est au premier caractere c'est forcement une premiere occurence
# $nb++; // on incremente
# } else if($j !==$l ....

par

$nb = 1;
for($j=1;$j<=$l;$j++) {
if($j !==$l...

tu evitera ainsi un test par tour et tu fera un tour de moins.

Je sais que ca parrai que dalle comme ca mais si tu n'optimise pas des codes aussi simple ca risque de devenir une catastrophe quand on arrivera à des codes plus complexes!

Enfin derniere chose, essaie de mettre des noms de variable explicites!!
$l devrait etre $longueur au minimum voir $longueurChaineDepart

Je met 5/10 parceque ca a quand meme le merite de faire ce que c'est sensé faire.

Bonne conitnuation

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Message ERREUR Suite tentative de transfert d'un fichier [ par David ] Il en résulte le message d'erreur suivant : Warning: Unable to create '../occas/1.jpg': Permission denied in /home4/eq9846/html/test/prive/admin/edi_o problème d'INCLUDE !!!! [ par nicoy2000 ] j'ai $gourl, qui vaut "scripts/al/al.php3?suite=ok" puis je fais include($gourl); et voici l'erreur: Warning: Failed opening 'scripts/al/al.php3?suite problème d'INCLUDE !!!! [ par nicoy2000 ] j'ai $gourl, qui vaut "scripts/al/al.php3?suite=ok" puis je fais include($gourl); et voici l'erreur: Warning: Failed opening 'scripts/al/al.php3?suite Suivi de navigation suite [ par gby ] Salut à tous,le bout de code qui me permet de récupérer le nom du fichier donc de la page en cours : &lt;?php $nb = count(explode ("/", $REQUEST_URI)) Affichage...suite de tableau [ par Brikse ] Hello tout le monde.... Je rencontre un problème au niveau de l'affichage dans mon code PHP. Alors, le truc est simple.J'ai un code qui insère une ima Algorithme de tri ... [ par LocalStone ] Salut à tous ! Il y a peut-être 1 mois et demi, j'ai lu un article - ou plutôt un tutorial - sur comment mettre en place un algorithme de tri automati colorier un ligne sur deux [ par herveguedj ] salut je voulais savoir comment faire pour colorier une ligne sur deux dan sun tableau a la suite d'une requete sql et une boucle while je m'exiplique Mise à jour d'une table MySql, suite à une recherche PHP [ par tanktrasher ] 'lut,j'ai un bleme :j'ai une liste deroulante dans un formulaire PHP qui me permet d'executer une requete de recherche dans une table MySql.Je fais af Suite de discussion lancée dans un code source [ par frop01 ] tout ca c'est complique pour moi Oublions le array et je commence avec un variable entier.voici mon code &lt;html&gt;&lt;head&gt;&lt Opérateur logique [ par dorian53 ] BonjourEst ce qu'il existe une différence sur la longueur d'évaluation entre &, && et AND en php.Comme en java & (éval courte) && (éval longue)Merci.D


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,749 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales