Inscription / Connexion Nouveau Sujet
Niveau énigmes
Partager :

JFF : [pgm] Quelles puissances, en somme ! ***

Posté par philoux (invité) 18-04-06 à 10:24

Bonjour,

Ces relations sont étonnantes :

11 + 21 + 61 = 41 + 51

12 + 22 + 62 = 42 + 52

Cette particularité est notée : [1,2,6]=[4,5] (1,2) en appelant 1, 2, 6, 4 et 5 les bases et 1 et 2 les puissances. Les bases sont toutes différentes et les puissances sont positives.

A noter, cependant, le très joli [4,10,12]=[5,6,15] (-1,1) :

41 + 101 + 121 = 51 + 61 + 151

4-1 + 10-1 + 12-1 = 5-1 + 6-1 + 15-1

Il est possible d'aller très loin avec, par exemple : [184,443,556,698]=[230,353,625,673] (1,3,7)

1841 + 4431 + 5561 + 6981= 2301 + 3531 + 6251 + 6731

1843 + 4433 + 5563 + 6983= 2303 + 3533 + 6253 + 6733

1847 + 4437 + 5567 + 6987= 2307 + 3537 + 6257 + 6737

Sans parler des relations : [1,2,x,x+3]=[3,x+1,x+2] (1,2)

Avec un peu de programmation, il est demandé les égalités minimales (*) comprenant :
* deux valeurs de puissances, chacune comprise entre 1 et 6,
* au maximum six bases, chacune inférieure à 100.


(*) Seules les égalités minimales sont requises car si une égalité est vraie avec un ensemble de bases données, multiplier chacune des bases par un coefficient k rend vraie cette nouvelle égalité.

Pour ceux qui trouveraient cette consigne trop restrictive - et sans se limiter à des bases différentes - voici le très puissant :

[3,5,11,13,16]=[1,1,8,8,15,15] (1,2,3,4,5)

Bonne programmation !

Philoux

Posté par
master_och
re : JFF : [pgm] Quelles puissances, en somme ! *** 18-04-06 à 15:04

Bonjours Philoux

"voici le très puissant :

[3,5,11,13,16]=[1,1,8,8,15,15] (1,2,3,4,5)"

Je peux comprendre de ça qu'on n'est pas obligé de chercher les égalités à plus de 6 termes??


Posté par philoux (invité)re : JFF : [pgm] Quelles puissances, en somme ! *** 18-04-06 à 15:08

master_och : tu ne lis pas complètement les énoncés... (moi non plus, sur l'énigme pénultième) :

"* au maximum six bases, chacune inférieure à 100." écrit en gras...

Philoux

Posté par
master_och
re : JFF : [pgm] Quelles puissances, en somme ! *** 18-04-06 à 15:09

Ah d'accord pardon.

Posté par philoux (invité)re : JFF : [pgm] Quelles puissances, en somme ! *** 18-04-06 à 15:11

tu es tout pardonné :

tu es le seul qui utilise la programmation pour autre chose que des énigmes faisables à la main...

Philoux

Posté par
master_och
re : JFF : [pgm] Quelles puissances, en somme ! *** 18-04-06 à 15:21

Et c'est malheureusement(pour moi au moin) qu'il n'y a pas des mathiliens qui sont interessés à ce genre d'énigmes.
Mais bon c'est pas trés grave si cela ne t'empêche pas de continuer à poster les énigmes pgm.

Posté par philoux (invité)re : JFF : [pgm] Quelles puissances, en somme ! *** 18-04-06 à 15:24

pas de souci, master_och

il y a aussi ceux qui, sans rien dire ni répondre, banqué ou non, cherchent les [pgm]; pour preuve, cinnamon, savoie et Nicolas qui sont intervenus

Philoux

Posté par
master_och
re : JFF : [pgm] Quelles puissances, en somme ! *** 20-04-06 à 04:32

En essayant de chercher les solutions directement je me suis rendue compte que les solutions sont trés nombreuse voir illimités donc afin de pouvoir faciliter le travail du processeur voici enfin un programme tout options .
Il vous fournira autant que vous voulez de solutions et selon les limtes que vous choisissez :

uses wincrt;
function puis(a,p:integer):longint;var j:integer;x:longint;begin
         x:=1;j:=0;repeat inc(j);x:=x*a;until(j=p);puis:=x;end;
var a,b,nbr,d,p,i,j,q,n,i0,p1,p2,q1,q2,k,d1,d2,lim1,lim2,lim3,lim4,m:integer;x,y:real;t:array[1..12]of integer;
pr:array[1..30] of integer;s1,s2:array[1..6]of longint;
pui:array[1..6]of integer;
begin
writeln('Ce programme generera les égalités de la forme :');writeln;
writeln('A1^p + A2^p + ... + Aq^p = B1^p + B2^p + ... + Bk^p');writeln;
writeln('- tous les termes de l''égalité sont des entiers naturels');
writeln('- les termes de chaque membre des égalités seront triés par ordre croissant');
writeln('- une égalité sera prise en compte si elle est vrai pour au moin 2 valeurs de p');
writeln('- pour éviter la répétition des solutions on impose k>=q');writeln;
writeln('Ces égalités seront generées selon les données que vous entrez.');writeln;
writeln('Attention !: en entrant les données rassurez vous que vos données n''aboutissent');
writeln('pas à des termes ou à des sommes supérieur à 2147483647 sinon le programme ne');
writeln('fonctionnera pas correctement.');writeln;
writeln('Saisit des données: ');
writeln('inserer les limites (lim1,lim2) des termes An et (lim3,lim4) des termes Bn : ');
write('donner lim1 (lim1>=1): ');readln(lim1);if lim1>0 then begin
write('donner lim2 (lim2>=lim1) : ');readln(lim2);if lim2>=lim1 then begin
write('donner lim3 (lim3>=1) : ');readln(lim3);if lim3>=1 then begin
write('donner lim4 (lim4>=lim3) : ');readln(lim4);if lim4>=lim3 then begin
writeln('inserer les limites p1 et p2 de la puissance p: ');
write('donner p1 (p1>=1) : ');readln(p1);if p1>=1 then begin
write('donner p2 (p2>p1) : ');readln(p2);if p2>p1 then begin
writeln('donner les limites q1 et q2 de q (voir la forme génerale de l''égalité si dessus');
write('donner q1 (q1>=1): ');readln(q1);if q1>=1 then begin
write('donner q2 (q2>=q1): ');readln(q2);if q2>=q1 then begin
writeln('soit d = k-q donnez les limites d1 et d2 de d');
write('donner d1 (d1>=0) : ');readln(d1);if d1>=0 then begin
write('donner d2 (d2>=d1) : ');readln(d2);if d2>=d1 then begin
writeln('donner le nombre de solutions que vous voulez afficher pour ce coup : ');readln(n);if n>0 then begin i0:=0;
nbr:=0;pr[1]:=2;i:=0;for a:=3 to 53 do begin j:=1;repeat inc(j);until(j>=(a div 2))or((a mod j)=0);
if(a mod j>0)then begin inc(i);pr[i ]:=a;end;end;
for a:=q1 to q2 do for b:=a+d1 to a+d2 do begin t[1]:=lim1-1;m:=1;i:=0;
repeat inc(i);if(i<>a)and(i<a+b)then t[i+1]:=t[i ] else if(i=a)then t[i+1]:=lim3-1;
if((i<=a)and(t[i ]<lim2))or((i>a)and(t[i ]<lim4))then begin inc(t[i ]);if(i=a+b)then begin
               if a=b then begin q:=0;for j:=1 to a do if t[j+a]>t[j] then begin q:=1;j:=a;end;
               if q=1 then begin q:=0;for j:=1 to a do if t[j+a]<t[j] then begin q:=1;j:=a;end;if q=0 then i:=a-1;end
               else dec(i);end
               else begin q:=0;for j:=1 to a do if t[b+j]<t[j] then begin q:=1;j:=a;end;if q=0 then i:=a-1;end;
               if q=1 then begin j:=0;repeat inc(j);q:=0;
               for k:=1 to a+b do begin if(pr[j]<(t[k] div 2))then begin
               if(t[k] mod pr[j])>0 then begin k:=a+b;if q=2 then q:=1 else q:=0;end;end
               else if(t[k] mod pr[j])>0 then begin q:=1;k:=a+b;end else q:=2;end;
               until(q=2)or(q=1);
               if q=1 then begin k:=0;for p:=p1 to p2 do begin inc(k);s1[k]:=0;s2[k]:=0; for j:=1 to i do begin
               if j<=a then s1[k]:=s1[k]+puis(t[j],p) else s2[k]:=s2[k]+puis(t[j],p);end;
               if s1[k]<>s2[k] then dec(k) else pui[k]:=p;end;
               if k>1 then begin inc(nbr);inc(i0);for d:=1 to k do begin
               for j:=1 to a do begin write(t[j],'^',pui[d]);if j<a then write(' + ') else write(' = ');end;
               for j:=a+1 to a+b do begin write(t[j],'^',pui[d]);if j<a+b then write(' + ') else writeln;
               end;end;writeln;
               if i0=n then begin writeln('donner le nombre de solutions que vous voulez afficher pour ce coup : ');
               readln(n);i0:=0;end;
               end;end;
               dec(i);end;end;end
else if(i>1) then i:=i-2
else m:=0;until(m=0);end;writeln('le nbre de soultions est : ',nbr);end;end;end;end;end;end;end;end;end;end;end;end.

Tout est expliqué à l'exécution si vous rencontrez des problémes lors de l'éxécution je suis prêt à expliquer (enfin s'il y en a quelqun qui sera interessé ...).
Mais en tout cas merci à toi Philoux pour cette belle énigme.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !