begin process at 2010 02 10 14:41:18
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Trucs & Astuces

 > 1 2 3 4 5 6 7 8 9 = 100 !

1 2 3 4 5 6 7 8 9 = 100 !


 Information sur la source

Note :
8,33 / 10 - par 6 personnes
8,33 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Trucs & Astuces Niveau :Initié Date de création :21/06/2005 Date de mise à jour :22/06/2005 14:27:09 Vu / téléchargé :3 487 / 90

Auteur : la_pin

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

 Description

Cliquez pour voir la capture en taille normale
Ce script montre comment associer les nombres 1 à 9 avec les 4 opérateurs usuels mathématiques (+,-,*,/) pour que le total fasse exactement 100 !
Pour trouver les 9 solutions possibles, ce script va tout simplement essayer toutes les combinaisons possibles comme il n'existe pas d'algorithme évident.

Source

  • <html>
  • <head>
  • <title>1 2 3 4 5 6 7 8 9 = 100 !</title>
  • </head>
  • <script language="JavaScript">
  • function go()
  • {
  • affichage = open("","","height=200,width=350"); // Pour l'ouverture de la popup
  • affichage.document.write("<font size=1 face=Verdana, Arial, Helvetica, sans-serif>");
  • v = new Array(8);
  • op = new Array('+','-','*','/'); // On définit les 4 opérateurs
  • depart = new Date(); // On donne l'heure de départ du calcul
  • var nombre_de_solutions = 0; // On met les compteurs à zéro
  • var temps_total = 0;
  • // On essaye toutes les solutions possibles
  • for (v[0]=0; v[0]<4; v[0]++)
  • for (v[1]=0; v[1]<4; v[1]++)
  • for (v[2]=0; v[2]<4; v[2]++)
  • for (v[3]=0; v[3]<4; v[3]++)
  • for (v[4]=0; v[4]<4; v[4]++)
  • for (v[5]=0; v[5]<4; v[5]++)
  • for (v[6]=0; v[6]<4; v[6]++)
  • for (v[7]=0; v[7]<4; v[7]++)
  • { z = 1;
  • for (i=2; i<=9; i++)
  • // On essaye toutes les combinaisons avec les 4 opérateurs (+,-,*,/)
  • { switch (v[i-2])
  • {
  • case 0 : z += i;
  • break;
  • case 1 : z -= i;
  • break;
  • case 2 : z *= i;
  • break;
  • case 3 : z /= i;
  • break;
  • }
  • }
  • // si on trouve bien 100, on écrit le résultat et le temps mis pour faire le calcul
  • if (z == 100)
  • { resultat = ""
  • for (j=0; j<=8; j++)
  • resultat += (j+1) + (j==8 ? " =" : op[v[j]]);
  • nombre_de_solutions++;
  • temps = temps_ecoule(depart);
  • temps_total += temps;
  • affichage.document.write(resultat + " " + z
  • +" " + edit(temps) + "<br>");
  • depart = new Date();
  • }
  • }
  • affichage.document.write("<p>On a trouvé "
  • + nombre_de_solutions + " solutions en "
  • + edit(temps_total) + " secondes </font>");
  • }
  • // Calcul du temps mis pour faire le calcul (heure arrivée - heure départ cf: cours de 5éme ^^)
  • function temps_ecoule(depart)
  • { var temps = new Date();
  • return Math.ceil((temps.getTime() - depart.getTime())
  • /100);
  • }
  • function edit(dixiemes)
  • { a = Math.floor(dixiemes/10);
  • b = dixiemes % 10;
  • return a + "," + b;
  • }
  • </script>
  • <body>
  • <form>
  • <input type="submit" value=" GO ! " onClick="go()">
  • </form>
  • </body>
  • </html>
<html> 
<head> 
<title>1 2 3 4 5 6 7 8 9 = 100 !</title> 
</head> 
<script language="JavaScript"> 
   
function go() 
{ 
    affichage = open("","","height=200,width=350"); // Pour l'ouverture de la popup 
    affichage.document.write("<font size=1 face=Verdana, Arial, Helvetica, sans-serif>"); 
    v = new Array(8); 
    op = new Array('+','-','*','/'); // On définit les 4 opérateurs 
    depart = new Date(); // On donne l'heure de départ du calcul 
    var nombre_de_solutions = 0; // On met les compteurs à zéro 
    var temps_total = 0; 
      
    // On essaye toutes les solutions possibles 
          
     for (v[0]=0; v[0]<4; v[0]++) 
      for (v[1]=0; v[1]<4; v[1]++) 
       for (v[2]=0; v[2]<4; v[2]++) 
        for (v[3]=0; v[3]<4; v[3]++) 
         for (v[4]=0; v[4]<4; v[4]++) 
          for (v[5]=0; v[5]<4; v[5]++) 
           for (v[6]=0; v[6]<4; v[6]++) 
            for (v[7]=0; v[7]<4; v[7]++) 
     { z = 1; 
         for (i=2; i<=9; i++) 
              
            // On essaye toutes les combinaisons avec les 4 opérateurs (+,-,*,/) 
              
         { switch (v[i-2]) 
         { 
              case 0 : z += i; 
                       break; 
              case 1 : z -= i; 
                       break; 
              case 2 : z *= i; 
                       break; 
              case 3 : z /= i; 
                       break; 
         } 
         } 
          
         // si on trouve bien 100, on écrit le résultat et le temps mis pour faire le calcul 
          
         if (z == 100) 
         { resultat = "" 
         for (j=0; j<=8; j++) 
         resultat += (j+1) + (j==8 ? " =" : op[v[j]]); 
         nombre_de_solutions++; 
         temps = temps_ecoule(depart); 
         temps_total += temps; 
         affichage.document.write(resultat + " " + z 
         +" " + edit(temps) + "<br>"); 
         depart = new Date(); 
         } 
         } 
         affichage.document.write("<p>On a trouvé " 
                        + nombre_de_solutions + " solutions en " 
                        + edit(temps_total) + " secondes </font>"); 
        } 
        // Calcul du temps mis pour faire le calcul (heure arrivée - heure départ cf: cours de 5éme ^^) 
        function temps_ecoule(depart) 
        { var temps = new Date(); 
         return Math.ceil((temps.getTime() - depart.getTime()) 
             /100); 
        } 
        function edit(dixiemes) 
        { a = Math.floor(dixiemes/10); 
        b = dixiemes % 10; 
        return a + "," + b; 
} 
</script> 
<body> 
<form> 
<input type="submit" value=" GO ! " onClick="go()"> 
</form> 
</body> 
</html>

 Conclusion

L'intéret ?!
Aucun ! Si ce n'est que de montrer la puissance de travail des différents navigateurs :
IE trouve les 9 solutions en 1 seconde en moyenne
Les navigateurs de type Gerko (netscape, firefox...) trouvent les solutions en 1.8 sec en moyenne.
Avec opéra, au bout d'un quart d'heure, la dernière ligne ne s'affiche toujours pas.

Les 9 solutions sont :

1+2+3+4+5*6-7+8+9 = 100
1+2*3+4+5*6-7+8-9 = 100
1-2/3+4*5*6+7-8-9 = 100
1*2+3*4-5*6-7+8+9 = 100
1*2+3*4*5+6-7-8+9 = 100
1*2+3*4*5-6+7+8-9 = 100
1*2-3+4*5*6-7+8+9 = 100
1*2*3+4+5*6-7+8+9 = 100
1/2+3*4*5+6+7+8+9 = 100

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 juin 2005 15:00:30 :
Petit pb de mise en forme + rajout de commentaires
22 juin 2005 12:10:52 :
Formatage du texte de la popup rien que pour darkman2 ^^
22 juin 2005 14:18:51 :
Ajout d'un zip et d'une capture
22 juin 2005 14:27:09 :
Pb zip

 Sources du même auteur

Source avec Zip CONTROLER LE FLASH PLAYER
Source avec Zip Source avec une capture MAGIFIQUE GENIE HYPER SYMPA !
RECOMMANDER UNE PAGE A UN AMI EN JAVASCRIPT !
Source avec Zip Source avec une capture UN TEXTE AVEC UN ARRIERE PLAN DEFILANT !

 Sources de la même categorie

VERIFIER UNE ADRESSE E-MAIL par elmersaid
DÉTECTER LES VISITEURS EN PROVENANCE DE GOOGLE par elmersaid
EMPÊCHER QUE VOTRE PAGE NE S'AFFICHE PAS DANS UN CADRE (IFRA... par elmersaid
ROLLOVER SUR LES BARRES DE SCROLL par elmersaid
OUTIL DE SÉLECTION par jdmcreator

Commentaires et avis

Commentaire de darkman2 le 22/06/2005 08:09:57

t'as bien fait la_pin
le resultat apparait dans un popup
t'as eu une meilleur creativité
note 8/10
mais est ce que ca marche sur M/FF

Commentaire de la_pin le 22/06/2005 11:38:54

Ouai, ça marche spus Mozilla sans problème, mais sinon, le but de ce script n'est pas du tout la créativité ! C'est les maths !

Commentaire de la_pin le 22/06/2005 12:10:14

Voila, SPECIALEMENT pour toi darkman, j'ai formaté le texte de la popup, j'ai viré les balises <pre> et mis du verdana à la place ^^

Commentaire de crashtest le 22/06/2005 16:43:23

lu,
à vraiment sa marche nikel mais moi et les maths sa fait 2 donc je vais le montrer à mon pere c'est un matheu pure et dure moi je te mais 9/10
aller @++

Commentaire de heyboy le 26/06/2005 14:16:57

Oui, bon script, mais tu aurais pu préciser ta source (tu dois surement savoir de quoi je veux parler)

ps : j'espère que ce que je pense est faux...

Commentaire de la_pin le 26/06/2005 20:08:41

Oui heyboy, j'ai bien crée cette source avec l'aide d'un bouquin de javascript mais en aucun cas, je n'ai recopié le code donné dans le livre.

Commentaire de heyboy le 30/06/2005 10:45:07

OK, ca va alors... bien que tu aies pris les mêmes noms pour les variables etc.

Commentaire de coucou747 le 22/05/2007 05:22:29

faire une fonction recursive ca aurait ete plus propre

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

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 : 1,342 sec (4)

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