Enigmes

Forum dédié aux énigmes et à toutes formes de jeux de logique.

Déconnexion

Tu n'es pas identifié sur Prise2tete : s'identifier.

accueil Accueil forum Forum
[+]

Écrire une réponse

Attention : Aucun indice ou demande d'aide concernant les énigmes de Prise2Tete n'est accepté sur le forum ! Rends-toi sur le cercle des sages si tu as besoin d'aide !
Tout nouveau message ou sujet ne respectant pas cette règle sera supprimé, merci.
Rédige ton message
| | | | Upload | Aide
:) :| :( :D :o ;) :/ :P :lol: :mad: :rolleyes: :cool:
Options
Sécurité

Répondez (numériquement) à la petite énigme suivante : 

Un berger a 40 moutons, ils meurent tous sauf 18, combien en reste-t-il ?

Retour

Résumé de la discussion

PapyJohn
14-06-2010 21:18:57

Sous ce nom mystérieux
mon petit (menteur!)probleme arithmétique rien qu'a moi mais il;parait qu'il y a de amateurs:pas de noms!

Je decide arbitrairement que je vais travailler sur les entiers de 1 à 1000 continus

1,2,3,4,5,6,7,8,9,10,11....

Je commence par élever chaque élément au cube(ou au carré ou a n'importe quelle puissance
1,8,27....
le but est simple: trouver tous les couples qui additionnés donnent le même résultat
exemple 23 , 217 et  133 , 173 donnent 95236

Je me suis fais un bout de code
C'est vraiment simple

Valax = 1000;
for i:=1 to Valmax do
begin
  v:=(I*I*i)
  for j=i to Valmax do
   begin
      w=v+(J*j*j)
      for z=1 to Valmax do
        begin   
          y=(z*z*z)       
          for m =1 to Valmax do
            if y+(m*m*m) = w then inc(trouve)
        end;
      end;
end;
En Pascal mais qui dit mieux! :D
les résultats sont les suivants

Valmax  a maxi   trouve
// 500    256       506
// 600    360       746
// 700    409       949
// 800    469      1137
// 900    658      1375
//1000    658      1601
//1100    856      1854

on se rend ainsi compte que quand Valmax =500 alors les boucles I et Z peuvent s'arrêter à 256 pour 800 a 469. On voit la question qui arrive....
Connaissant Valmax (800),connaissant la puissance de a (3) comment retrouver 469?

A gagner un Orangina et un Mars a consommer intra-muros a Saint Malo.

Papy

EDIT Ajout de commentaire sur le code



Valax = 1000;          // on s'arrete a 1000
for i:=1 to Valmax do
begin
  v:=(I*I*i)           // calcul du cube de a
  for j=i to Valmax do // on repart de I pour eviter les doublons
   begin
      w=v+(J*j*j)     // calcul de la somme de a cube et b cube
     
//on cherche d'autres paires (z,m) dont la somme des cubes est W   
      for z=1 to Valmax do
        begin   
          y=(z*z*z)       
          for m =1 to Valmax do
            if y+(m*m*m) = w then inc(trouve)
        end;
      end;
end;
//on peut accélérer le traitement en modifiant les bornes de départ de z et
m

Pour evietr les élévations au cube on peut precalculer une table
for i:= to 1000 do
  Cube[ i]:= i*i*i
Mais on perd en efficacité:cela va moins vite(pour les fanas uniquement
cela ne fait pas partie de la question; Pourquoi cela va moins vite?)

Edition

Je ne suis donc pas tres clair bien que je sics précisément se que je cherche

Je travaille sur des égalités de somme
a+b = c+d
z+y =  w+x
J'élève a et b au carre, au cube...
Par exemple
a² + b²
et je cherche des sommes de carres équivalents
Exemple puissance 1

150+20 = 170

je recherche donc tous les couples dont le total est 170

151+19
152+18
153+17...

Il faut bien sur donner une limte haute
Par exemple on decide de se limiter a 500
0 < a,b,c,d < 500
quand on regarde la liste obtenue
Jamais a ne depasse 256 
Pourquoi les paires 256+x ont un total unique
pourquoi 254+X a des egalités et pas 256+x?

Au lieu de inc(trouve) mettez printf(i)

Pied de page des forums

P2T basé sur PunBB
Screenshots par Robothumb

© Copyright 2002–2005 Rickard Andersson

Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact
© Prise2tete - Site d'énigmes et de réflexion.
Un jeu où seules la réflexion, la logique et la déduction permettent de trouver la solution.

Flux RSS de Prise2Tete Forum Jeux & Prise2Tete Test & Prise2Tete Partenariat et Publicité sur Prise2Tete