Un vrai challenge

Un vrai challenge

Messagepar sc le 16 Nov 2009, 13:36

Voici un vrai challenge :
Ecrire un algorithme (et essayer de l'implémenter) qui permet de déterminer toutes les solutions entières du système d'équation :
$ \left\{x^2+y^2=2 x y \\ -20 \leq x \leq 20 \\ -20 \leq y \leq 20 \right. $


NB: pour que votre code soit temporairement invisible, vous prendrez soin de l'encadrer de la manière suivante :
Code: Tout sélectionner
[spoilertempo=1258910263] Mon code [/spoilertempo]


Bon courage !!!
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Un vrai challenge

Messagepar sc le 18 Nov 2009, 18:24

Une petite indication :idea: :
les seuls mots clés nécessaire sont : if ; then ; for ; thru ; do et display.
Bon courage !!
:idea: Vous pouvez mettre une copie d'écran en clair et le code en spoilertempo
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Un vrai challenge

Messagepar -Theo- le 19 Nov 2009, 17:07

Mais ? Laura m'a enfin laissé une chance de répondre en premier ?
Bon, étant malade aujourd'hui, elle est excusée :roll:

Je ne suis pas très très habitué à Maxima, alors je ne sais pas si j'ai fait ce qu'il faut.
Je pense que c'est à peu près ça, puisque les solutions tiennent la route.
Bon, vous auriez pu choisir une équation un peu plus intéressante ! :sing:

Texte caché : cliquez sur le cadre pour l'afficher
"Si les faits ne correspondent pas à la théorie, changez les faits !"
Albert Einstein
Avatar de l’utilisateur
-Theo-
~ membre surdoué ~
 
Messages: 31
Inscrit le: 26 Sep 2009, 11:22

Re: Un vrai challenge

Messagepar Lou le 19 Nov 2009, 17:10

AAAAAAAH NON >W<
J'aurais pas du dormir aussi longtemps, kya~ je suis trop bête :(
J'ai préféré t'envoyer un mail d'abord et voilà le résultat :(
Tss mon code est le même que le tien.
Et ça marche avec n'importe quelle équation et intervalle de valeurs pour x et y.

ça y'est je suis complètement battue.

NooOOn, pourquoi es-tu si fort :bigcry:

Texte caché : cliquez sur le cadre pour l'afficher
Avatar de l’utilisateur
Lou
~ membre génial ~
 
Messages: 75
Inscrit le: 09 Sep 2009, 12:44
Localisation: Grenoble~

Re: Un vrai challenge

Messagepar sc le 19 Nov 2009, 21:05

Bien joué !!
(J'en conviens, l'équation n'est pas des plus intéressantes.
pourquoi ne pas essayer $ x^3+y^3=z^3 $ :wink: ?)
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Un vrai challenge

Messagepar -Theo- le 19 Nov 2009, 22:26

Bon, j'ai un peu essayé de coder ça en C, mais je n'y arrive pas :(
Je ne sais pas si le soucis vient de mes incrémentations, ou de mes boucles ?

Code: Tout sélectionner
  char x = -20;
  char y;
  int a;
  int b;
 
  while (x<20)
  {
  y=-20;
  while (y<20)
  {
  a=x^2+y^2;
  b=2*x*y;     
  if (a==b)
  {printf("x=%d et y=%d sont solutions.\n", x, y);}
  y++;
  }
  x++;
  }
     
  system("PAUSE");   
  return 0;


Ou alors peut être ai-je fait une erreur dans le calcul de mes variables ?
:|
"Si les faits ne correspondent pas à la théorie, changez les faits !"
Albert Einstein
Avatar de l’utilisateur
-Theo-
~ membre surdoué ~
 
Messages: 31
Inscrit le: 26 Sep 2009, 11:22

Re: Un vrai challenge

Messagepar sc le 19 Nov 2009, 23:41

Il y a une toute petite erreur dans ton code (la puissance se note pow)
Ainsi, cela donne :
Code: Tout sélectionner
#include <stdio.h>
#include <math.h>

int main(int argc, char **argv)
{
      char x = -20;
      char y;
      int a;
      int b;
     
      while (x<20)
      {
      y=-20;
      while (y<20)
         {
   
           a=pow(x,2)+pow(y,2);
           b=2*x*y;     
           if (a==b)
              {printf("x=%d et y=%d sont solutions.\n", x, y);}
           y++;
         }
      x++;
      }
         
     return 0;
}
Avatar de l’utilisateur
sc
~ administrateur ~
 
Messages: 1439
Inscrit le: 29 Aoû 2017, 10:46

Re: Un vrai challenge

Messagepar -Theo- le 20 Nov 2009, 07:52

Thanks sir ! :amen:
Après Maxima, pas facile de retrouver les notations de C :mrgreen:

En fait, j'ai trouvé une autre manière de faire la même chose (avec "for"), et ça ressemble bien plus au code Maxima :

Code: Tout sélectionner
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  char x;
  char y;
  int a;
  int b;
 
  for(x=-20;x<=20;x++)
  {
  for(y=-20;y<=20;y++)
  {
  a=pow(x,2)+pow(y,2);
  b=2*x*y;
  if (a==b)
  {printf("x=%d et y=%d sont solutions.\n", x, y);}
  }
  }

     
  system("PAUSE");   
  return 0;
}
"Si les faits ne correspondent pas à la théorie, changez les faits !"
Albert Einstein
Avatar de l’utilisateur
-Theo-
~ membre surdoué ~
 
Messages: 31
Inscrit le: 26 Sep 2009, 11:22


Retourner vers Algorithmique

Qui est en ligne ?

Utilisateurs parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron