SUITE DE ROBINSON

monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006 - 1 nov. 2005 à 11:32
superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006 - 17 nov. 2005 à 22:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/34427-suite-de-robinson

superbaloo78 Messages postés 87 Date d'inscription vendredi 29 août 2003 Statut Membre Dernière intervention 19 mai 2006
17 nov. 2005 à 22:06
remarque ton algo c'est pas demain la veille que quelqu'un trouvera la solution :)
étant donné qu'il y a une erreur dans le code de la suite de robinson elle meme ^^

et oui teste par exemple avec un premier chiffre de 7, à partir du rang 3 ca merde :) enfin bon .... c'est pas bien grave :)
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
5 nov. 2005 à 17:36
Ah, à force d'être stressé par le monde extérieur, j'en fini par voir n'importe quoi ;)
M'enfin je défends mon point de vue quand memeuh !
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
3 nov. 2005 à 03:48
FhX détend-toi c'était ironique... ^_^;;
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
2 nov. 2005 à 11:23
en optimisant à fond, mon jeu d'échec est passé de 10 secondes d'attentes à seulement 3... c'est dingue ce que c'est cool les optimisations...
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
2 nov. 2005 à 11:12
"C'est horrible o_o"
Tu rigoles bien j'espère :)
Parce que je vais décortiquer les stats, tu va voir que c'est 3 fois rien.

14ms pour 100 000 itérations. Certes, cela signifie qu'on touche le serveur 100 000 sur un temps très court (d'ailleurs, le temps d'éxécution aurait été bienvenu :) ). Mais en moyenne, il te faut 5-6 secondes pour exécuter du code comme ca.

Donc en réalité, tu perds 14 ms sur 100 000 itérations / 5 secondes !

Imagine ! Perdre 14ms sur 5 secondes ! C'est fou ce que c'est horrible !
C'est minime tu veux dire !
D'ailleurs, va taper du 100 000 itérations / 5 sec, à moins d'avoir un site ultra-énorme (genre celui de Microsoft), tu n'y arrivera jamais.
Donc, en abaissant le niveau à 100 itérations / 5 sec, tu va avoir une différence de combien ... 2ms ? 1 ms ?

Wouahouh, je te rassure de suite, 1 ou 2 ms tu n'as même pas le temps de le voir :)
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
2 nov. 2005 à 00:10
une différence de 14ms pour 100000 itérations!! (Source : http://www.vulgarisation-informatique.com/optimiser-php.php)
C'est horrible o_o

:p
FhX Messages postés 2350 Date d'inscription mercredi 13 octobre 2004 Statut Membre Dernière intervention 18 avril 2015 3
1 nov. 2005 à 23:29
De combien ?
3ms à 10000 passages / 5 secondes ?

J'ai connu pire !
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 20:10
L'opérateur ternaire est moins bon niveau performance :p
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
1 nov. 2005 à 19:19
salut
t'as aussi ton <? qui devrait être remplacé par : <?php

sinon, on pourrait faire beaucoups plus court en utilisant l'opérateur ternaire, ou bien en supprimant toutes les accolades inutiles...
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 12:53
Ben installe Easyphp (par exemple) sur ton pc o_o
DarkMeteor Messages postés 2 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 11:44
J'utilise les serveurs de Free, donc je n'ai pas accès au php.ini
Je me contente de mettre un error_reporting (E_ALL) pour verifier les notices, mais souvent je n'y pense pas.
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 11:41
Tu peux directement mettre E_ALL dans le paramètre error_reporting de php.ini (D'ailleurs c'est très fortement conseillé quand on fait du développement)
DarkMeteor Messages postés 2 Date d'inscription lundi 31 octobre 2005 Statut Membre Dernière intervention 1 novembre 2005
1 nov. 2005 à 11:37
Merci de m'avoir fait part de cette erreur, je n'avais pas pensé a verifier le code avec un error_reporting (E_ALL), donc ce code ne m'affichais pas les notices.

Code corrigé, encore merci a toi
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 11:33
Oups
if (isset($sortie[$i]) && $sortie[$i] != 0)

(J'avais oublié une parenthèse)
monoceros01 Messages postés 420 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 20 mars 2006
1 nov. 2005 à 11:32
Ton code me retourne les erreurs suivantes :
Notice: Undefined offset: 9 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 8 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 7 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 6 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 5 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 4 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 3 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 2 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined offset: 1 in c:\program files\easyphp1-8\www\essai\robinson.php on line 25
Notice: Undefined variable: return in c:\program files\easyphp1-8\www\essai\robinson.php on line 27

En fait, $return doit être définis avant d'être concaténé, et $sortie[$i] n'est pas toujours définis dans ta deuxième boucle for (dans ta fonction)

Donc il faut rajouter :
$return = '';
Avant ta deuxième boucle fort

Et remplacer
if ($sortie[$i] != 0)
Par :
if (isset($sortie[$i] && $sortie[$i] != 0)

Aller deux erreurs => -2 donc 8/10 :)
Rejoignez-nous