begin process at 2012 02 09 16:50:37
  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é :5 232 / 93

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

Source avec Zip Source avec une capture SUBDIVISER LE RÉSULTAT D'UNE RECHERCHE EN PAGES par kimmp
Source avec Zip TIMER : SETTIMEOUT & SETINTERVAL AMÉLIORÉS par jdmcreator
Source avec Zip Source avec une capture ONGLETS ET CHANGEMENT INSTANTANÉ DE LA LANGUE par william voirol
Source avec Zip Source avec une capture COPIER DU TEXTE par m22001111
Source avec Zip DIALOGUE ENTRE FENÊTRES MÈRE ET FILLE par william voirol

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 administrateur CS

faire une fonction recursive ca aurait ete plus propre

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
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,374 sec (4)

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