superbaloo78
Messages postés87Date d'inscriptionvendredi 29 août 2003StatutMembreDernière intervention19 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és2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 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és420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 3 nov. 2005 à 03:48
FhX détend-toi c'était ironique... ^_^;;
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 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és420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 2 nov. 2005 à 00:10
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 1 nov. 2005 à 23:29
De combien ?
3ms à 10000 passages / 5 secondes ?
J'ai connu pire !
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 1 nov. 2005 à 20:10
L'opérateur ternaire est moins bon niveau performance :p
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 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és420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 1 nov. 2005 à 12:53
Ben installe Easyphp (par exemple) sur ton pc o_o
DarkMeteor
Messages postés2Date d'inscriptionlundi 31 octobre 2005StatutMembreDerniè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és420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 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és2Date d'inscriptionlundi 31 octobre 2005StatutMembreDerniè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és420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 mars 2006 1 nov. 2005 à 11:33
Oups
if (isset($sortie[$i]) && $sortie[$i] != 0)
(J'avais oublié une parenthèse)
monoceros01
Messages postés420Date d'inscriptionvendredi 28 novembre 2003StatutMembreDernière intervention20 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)
17 nov. 2005 à 22:06
é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 :)
5 nov. 2005 à 17:36
M'enfin je défends mon point de vue quand memeuh !
3 nov. 2005 à 03:48
2 nov. 2005 à 11:23
2 nov. 2005 à 11:12
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 :)
2 nov. 2005 à 00:10
C'est horrible o_o
:p
1 nov. 2005 à 23:29
3ms à 10000 passages / 5 secondes ?
J'ai connu pire !
1 nov. 2005 à 20:10
1 nov. 2005 à 19:19
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...
1 nov. 2005 à 12:53
1 nov. 2005 à 11:44
Je me contente de mettre un error_reporting (E_ALL) pour verifier les notices, mais souvent je n'y pense pas.
1 nov. 2005 à 11:41
1 nov. 2005 à 11:37
Code corrigé, encore merci a toi
1 nov. 2005 à 11:33
if (isset($sortie[$i]) && $sortie[$i] != 0)
(J'avais oublié une parenthèse)
1 nov. 2005 à 11:32
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 :)