Se connecter avec
S'enregistrer | Connectez-vous

Script PHP .....+.....= 59%

Dernière réponse : dans Programmation
Lassé par la pub ? Créez un compte

Même si le principe de faire matcher 2 noms en soit est ridicule (enfin c'est un gadget marrant comme un autre), l'idée de mettre un simple random ne l'est pas moins. Si qqn met 2x de suite le même couple de prénom et qu'il obtient 2 évaluations diamétralement opposées, ton truc passe pour de la foutaise et c'est tout ton site qui prend un coup de crédibilité avec.

Tu peux faire l'algo aussi simpliste que tu veux, par exemple sur l'idée d'Antoine, mais tu dois faire en sorte que cela affiche toujours le même résultat pour un même couple.
Expert Programmation

pas dur, a chaque nouvelles entrer du prénom 1 et prénom 2 tu regarde si ils existe pas déja dans la base, si c'est le cas tu ressort le resultat, sinon tu genere un nombre au pif et tu enregistre le resultat pour les 2 prenom associé. en 5 min t'as ton script ridicule.
Expert Programmation

Sinon la bonne solution pour avoir toujours le même résultat avec 2 prénom identique est de faire un petit algo.

Par exemple la fonction md5() sort une chaine en hexadécimal, tu peux donc faire mumuse avec pour avoir un résultat. (Faire la somme par exemple).

St3fff a dit :
Un système d'algo sur les lettre serait plus long que la base de donné.

Plus long ?! t'entends quoi par là?

Créer ta table, stocker tes noms, aller rechercher dedans, tu trouves ça plus court qu'écrire un algo ridicule (puisque de toute manière tu le fais comme tu veux), qui plus est pourrait très bien se faire en javascript plutôt qu'avoir recours à des interractions inutiles avec le serveur ?

En terme d'efficacité y a pas photo avoir recours à une base de donnée me paraît bien plus lourd et franchement inutile pour un gadget du genre.

Le truc c'est que, je croi que la personne qui a poster ce poste ne sais pas trop "coder"... Non ?
Et il risque ne pas trop comprendre ce que vous dite faite lui un tit bout de "code". (enfin si vous voulez, je pence sa l'aiderer, moi aussi comme sa je comprend comment sa marche... ^^') merci
Expert Programmation

Voila le genre d'algo possible (à convertir dans un langage) :

saisie prenom
application fonction md5 sur prenom
somme des 32 caractères de la chaine de résultat
saisie prenom2
application fonction md5 sur prenom2
somme des 32 caractères de la chaine de résultat
Calcul du plus grand résultat
Division
Calcul du pourcentage


Et voilà on obtient quelques chose de totalement aléatoire et de stable sans jouer avec des nombres aléatoires. Bien sûr il est possible d'ajouter à un résultat un nombre aléatoire plus ou moins grand afin d'avoir un résultat qui sera "légèrement" variable, ça fait mieux que quelques chose de purement stable et quelques chose de totalement instable.
Expert Programmation

Oui pourquoi pas. Sinon j'ai fait mumuse un peu et le résultat est pas mal j'arrive a des résultats assez aléatoire et convenable.

Le script est en python par contre, j'avais la flemme de tester en PHP.

  1. import hashlib
  2.  
  3. print "Saisi prenom 1 : "
  4. prenom1 = raw_input()
  5. print "Saisi prenom 2 : "
  6. prenom2 = raw_input()
  7.  
  8. #print "Prenom1 : "+prenom1+"\nPrenom2 : "+prenom2
  9.  
  10. md51 = hashlib.md5(prenom1).hexdigest()
  11. md52 = hashlib.md5(prenom2).hexdigest()
  12.  
  13. ret1 = 0
  14. ret2 = 0
  15.  
  16. for char in md51:
  17. intchar = int(char, 16)
  18. ret1 = intchar + ret1
  19. if(ret1 > 100):
  20. ret1 = 33
  21.  
  22. for char in md52:
  23. intchar = int(char, 16)
  24. ret2 = intchar + ret2
  25. if(ret2 > 100):
  26. ret2 = 1
  27.  
  28. ret1 = float(ret1)
  29. ret2 = float(ret2)
  30.  
  31. if(ret1 > ret2):
  32. resultat = ret2/ret1 * 100
  33. else:
  34. resultat = ret1/ret2 * 100
  35.  
  36. print int(resultat)
Expert Programmation

Ah non, c'est du Python, pas du PHP

Si tu arrives à comprendre sa logique tu n'auras aucun mal à le faire en PHP, en sachant que en php cette ligne de python :

  1. md52 = hashlib.md5(prenom2).hexdigest()


serait quelques chose comme :

  1. $md52 = md5($prenom2);
Lassé par la pub ? Créez un compte
Tom's guide dans le monde