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

Soyez le premier à donner votre avis sur cette source.

Vue 9 107 fois - Téléchargée 163 fois

Description

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 / Exemple :


<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

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_darkman2
Messages postés
121
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
31 décembre 2005
-
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
la_pin
Messages postés
277
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
15 décembre 2005
-
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 !
la_pin
Messages postés
277
Date d'inscription
mercredi 11 août 2004
Statut
Membre
Dernière intervention
15 décembre 2005
-
Voila, SPECIALEMENT pour toi darkman, j'ai formaté le texte de la popup, j'ai viré les balises et mis du verdana à la place ^^
cs_crashtest
Messages postés
105
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
28 août 2005
-
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 @++
cs_heyboy
Messages postés
18
Date d'inscription
dimanche 20 février 2005
Statut
Membre
Dernière intervention
11 juillet 2005
-
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...

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.