Inscription / Connexion Nouveau Sujet
Niveau énigmes
Partager :

PPCM à la queue leu leu...

Posté par
godefroy_lehardi Posteur d'énigmes
01-09-10 à 14:46

Bonjour à tous,

Vous connaissez tous (j'espère) le PPCM (plus petit commun multiple) entre deux nombres entiers.

Je vous propose de chercher, pour tous les nombres à 2 chiffres (soit de 10 à 99) que nous appellerons A et B, les triplets (A; B; PPCM(A,B)) qui s'écrivent avec des chiffres tous différents et consécutifs.

La notion de "consécutif" est appliquée de façon "large", c'est à dire qu'on peut les retrouver dans la suite infinie ....01234567890123456789012345678901234....
Pour être le plus clair possible, voici des exemples de suites de chiffres consécutifs :
123456789
7890123
45678901

Par exemple, PPCM(12;59)=708 donc le triplet s'écrira (12;59;708), ce qui nous donne la suite 0125789.
Les chiffres sont bien tous différents, mais pas consécutifs.

La question est donc : existe-t-il des triplets tels que définis ci-dessus et si oui, lesquels ?

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 17:50

Bonjour lehardi,

Je dirais qu'il n'y a pas de solution.
Voici un petit programme qui le montre (sauf erreur de ma part) écrit en CamL, si tu ne connais pas ce langage, et bien cela ressemble à d'autres, tu devrais t'y retrouver :


let rec pgcd a b = if b>a then pgcd b a else begin
if b=0 then a else pgcd b (a mod b) end;;

let ppcm a b = (a*b)/(pgcd a b) ;;

let find () = let L=ref [] and (a,c,d,u)=(ref 0, ref 0, ref 0, ref 0) and m=ref 0 in
  for i=0 to 9 do
    m:=ppcm (10*i+((i+1) mod 10)) (10*((i+2) mod 10)+((i+3) mod 10)) ;
    a:= !m/1000 ;
    c:= (!m/1000)/100 ;
    d:= (!m mod 100)/10 ;
    u:= (!m mod 10) ;
    if !a = 0 then
         if !c = 0 then  
              if !d= (i+4) mod 10 then
                   if !u= (i+5)mod 10 then L:= i:: !L
                   else ()
              else ()
         else if !c= (i+4) mod 10 then
                   if !d=(i+5) mod 10 then
                        if !u=(i+6) mod 10 then L:= i:: !L
                        else ()
                   else ()
              else ()
    else if !a= (i+4) mod 10 then
              if !c= (i+5) mod 10 then
                   if !d= (i+6) mod 10 then
                        if !u= (i+7) mod 10 then L:= i:: !L
                        else ()
                   else ()
              else ()
          else ()
   done;
!L;;

find ();;


Si quelqu'un aperçoit une coquille qui se serait glisser dans ces lignes, qu'il m'en fasse part Merci.

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 17:51

Note : pour faire 10 vérification, on aurait aussi bien pu le faire à la main.

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 01-09-10 à 18:16

Bonjour Noflah,

Je pense que tu n'as pas bien compris l'énoncé (mais peut-être n'est-il pas clair ?)

Il y a plus de 10 cas possibles.

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 18:22

Re bonjour godefroy_lehardi, et bonjour Noflah,

j'ai programmé ce problème et si je n'ai pas fait d'erreur de programmation, il me semble bien qu'il n'y ait pas de solution...

Je vais essayer de confirmer cela par excel...

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 18:22

Je pense avoir compris,

tu veux que ton triplet s'écrivent : i(i+1),(i+2)(i+3),...

Par exemple : 12 34 ...
Il n'y a donc que 10 cas à voir :

12 34  204
23 45  1035
34 56  952
45 67  3015
56 78  2184
67 89  5963
78 90  1170
89 01  89
90 12  180
01 23  23

Aucun ne convient.

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 01-09-10 à 18:29

Désolé, je me suis mal exprimé alors.

Une fois qu'on a un triplet, on prend tous les chiffres qui le composent et on les met dans l'ordre.
Le triplet répond à l'énoncé si tous les chiffres sont différents et se suivent comme indiqué dans l'énoncé.

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 18:31

Mais dans le triplets, tu met les 2 nombres puis le ppcm, donc forcement si ton premier nombre est 12 il faut au moins que le deuxième nombre soit 34. Et il eut fallu que leur ppcm soit 567 par exemple. non ?

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 01-09-10 à 18:36

Non, les chiffres n'ont pas besoin d'être déjà dans l'ordre.
Relis mon exemple.

Ca me rappelle cet humoriste canadien (dont j'ai oublié le nom) qui disait :
"Quand tu donnes ton numéro de téléphone, ça fait plus propre si tu remets d'abord les chiffres dans l'ordre... mais personne ne te rappelle jamais."

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 18:38

Ah oui effectivement j'avais mal compris. Je retouche le programme immédiatement

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 18:39

Je suis d'accord avec Noflah...
On propose donc "problème impossible"...:D

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 18:40

Bonjour totti,

Tu retardes un peu je crois

On a revu l'énoncé finalement !

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 18:41

Ok j'avais pas lu entre les deux...
J'ai mal lu l'énoncé...

Je propose donc "toutes mes excuses" et me repenche sur le problème...

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 18:43

Oui voilà, moi pareil ^^ Aller on y va.

Dis moi totti, tu te souviens si c'est le tri fusion ou le tri rapide  qui est le plus efficace lorsque la liste a trier n'est pas longue ?

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 18:58

Voici :

(*Le tri rapide *)

let rec partition L e= match L with
  | [] -> [],[]
  | [a] -> if a<e then [a],[] else [],[a]
  | a::L -> let (c,d)=partition L e in
            if a<e then (a::c,d)
                   else (c,a::d) ;;


partition [5;4;2;8;7;7;1];;

let rec tri_rapide L = match L with
  | [] -> []
  | [a] -> [a]
  | a::L -> let (c,d)=partition L a in
            tri_rapide(c) @ (a:tri_rapide d)) ;;

tri_rapide [5;4;2;8;7;7;1];;
tri_rapide [9;8;7;6;5;4;3;2;1;0];;      


let check L = let k=ref (tl L) and c=ref (hd L) and b=ref true in
for i=1 to (list_length L)-1 do
   if !c+1=hd !k then (c:= !c+1 ; k:= tl !k) else b:=false done;
!b;;

check [1;2;3;4;5;6];;

let find2 () = let L=ref [] and (a,b,e,f,m,c,d,u,p)=(ref 0,ref 0,ref 0,ref 0,ref 0,ref 0,ref 0,ref 0,ref 0) in
  for i=10 to 98 do
    a:=i/10 ; b:= i mod 10 ;
    for j=i to 99 do
    e:=j/10 ; f:= j mod 10 ;
    p:=ppcm i j ;
    m:= !p/1000 ;
    c:= (!p/1000)/100 ;
    d:= (!p mod 100)/10 ;
    u:= (!p mod 10) ;
    if !m = 0 then
         if !c = 0 then  
              if check(tri_rapide [!a;!b;!e;!f;!d;!u]) then L:= (i,j):: !L
              else ()
         else if check(tri_rapide [!a;!b;!e;!f;!c;!d;!u]) then L:= (i,j):: !L
              else ()    
    else if check(tri_rapide [!a;!b;!e;!f;!m;!c;!d;!u]) then L:= (i,j):: !L
         else ()
   done; done;
!L;;

find2 ();;

Et les solutions : [54, 63; 36, 57; 35, 42; 34, 51; 16, 54; 14, 36; 13, 54]

ce qui signifie que 54,63 et leur ppcm marchent / 36 et 57 idem / 35 et 42 / etc

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:00

En effet :

ppcm(54,63)=378 et en remettant dans l'ordre on a bien 3,4,5,6,7,8

Par contre on a 2 fois le 3 ... Il aurait du le voir ! Je vais lui taper dessus et je reviens.

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 19:07

Allez maintenant au point ou j'en suis (ridicule dans mes post d'avants...),

 Cliquez pour afficher

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 01-09-10 à 19:07

Je suis désolé Noflah, mais toutes tes réponses ont le même défaut : il y a un chiffre qui se répète.

Au fait, pensez à blanker

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:08

C'est bon j'ai trouvé le problème et j'ai corrigé une autre erreur : je n'avais pas pris en compte le coup de la suite cyclique, après 9 on revient à 0.

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:09

Désolé pour le blank,

 Cliquez pour afficher



Cette fois ça devrait marcher

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 01-09-10 à 19:11

C'est presque ça : il t'en manque une !

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:11

D'ailleurs pour le coup, l'énigme me paraissait trop simple au départ, mais maintenant avec le bon énoncé, c'était assez drôle. Donc merci pour l'énigme lehardi

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:13

Citation :
C'est presque ça : il t'en manque une !


Cela s'adresse à totti ou à moi ?

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:15

 Cliquez pour afficher

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 01-09-10 à 19:16

Je viens de voir la réponse de totti (que j'avais loupée)

 Cliquez pour afficher

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 19:31

godefroy :

 Cliquez pour afficher

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 19:36

je pense savoir quelle type de solution il me manque...

Celles du type 7890123 où on a un zero en plein milieu, car une fois trié cela donne 0123789 d'où la peut-etre ambiguité...

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 20:22

totti -> personnellement j'ai travaillé avec des listes, donc le logiciel ne fait pas de simplification du genre 01=1.
De plus j'ai différencier les cas où le ppcm à 2,3 ou 4 chiffres.

Je serais curieux de voir ou est mon erreur ...

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 20:24

idem pour moi...

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 20:37

Effectivement je ne vois pas non plus...

Elle aurait peut-être fait mal celle-ci en officielle...

Merci godefroy pour cette enigmhardy !!!

D'ailleurs dans les enigmes ardues, jamo ne devrait pas tarder à corriger la 214...

Posté par
Rodolphe
re : PPCM à la queue leu leu... 01-09-10 à 21:42

Re-Bonsoir godefroy_lehardi,

 Cliquez pour afficher


Posté par
Rodolphe
re : PPCM à la queue leu leu... 01-09-10 à 21:48

Je viens de lire les réponses de Noflah et totti1000 et je ne trouve comme eux que 4 couples solution à permutation près : quel est le 5ème ? Je n'ai pas le courage de le chercher !

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 22:00

Bonjour Rodolphe,

Mon ordinateur a eu lui le courage de chercher, et cela sans succès, c'est donc mon programme qui est faux quelque part, je pense donc que c'est un problème de logique auquel nous faisons face tous les 3, il y a une éventualité que nous ne soupçonnons pas ...

Posté par
Rodolphe
re : PPCM à la queue leu leu... 01-09-10 à 22:08

Salut Noflah,

J'ai du mal à imaginer un 5ème couple car j'ai sorti tous les doublons et il m'en manquerait deux dans ces conditions ! Ou alors, on ne cherche pas où il faut !

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 22:11

"Ou alors, on ne cherche pas où il faut !"

Voilà c'est ce que je pense ! Je suis un peu d'accord avec totti sur le fait qu'un quelconque 0 nous aurait mis à mal !
D'ailleurs j'y pense, voilà l'erreur de mon algo ! Je corrige et je reviens !

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 22:25

Bonsoir à tous :

 Cliquez pour afficher


Et encore merci au Hardy, donc les énigmes sont effectivement "hard". Je soutiens totti pour dire qu'en officielle cette énigme aurait fait pas mal de poisson !

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 22:26

Citation :
Je suis un peu d'accord avec totti sur le fait qu'un quelconque 0 nous aurait mis à mal !
D'ailleurs j'y pense, voilà l'erreur de mon algo ! Je corrige et je reviens !


Et merci à totti pour m'avoir mis sur la voie !

Posté par
Rodolphe
re : PPCM à la queue leu leu... 01-09-10 à 22:31

Noflah

PPCM(21;87)=609 : les chiffres sont différents mais pas consécutifs ! 012....6789 : ça c'était ma première réaction mais ils sont bine consécutifs comme cela 6789012, ça marche !!!!! Effectivement, il y aurait eu pas mal de

Bravo à toi ! Merci godefroy_lehardi

Posté par
Rodolphe
re : PPCM à la queue leu leu... 01-09-10 à 22:33

J'aurais dû lire les exemples donnés par maître godefroy_lehardi : on avait la réponse sous les yeux !

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 22:36

Rodolphe :

 Cliquez pour afficher

Posté par
totti1000
re : PPCM à la queue leu leu... 01-09-10 à 22:41

Et voilà, je viens de trouver l'erreur dans mon programme...

Merci Noflah...

Posté par
Noflah
re : PPCM à la queue leu leu... 01-09-10 à 22:42

Merci à toi totti

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 02-09-10 à 07:28

Félicitations à tous les trois

Effectivement, il y avait un cas un peu tordu.
Mais vous en êtes venus à bout.

Rodolphe :

 Cliquez pour afficher

Posté par
caylus
re : PPCM à la queue leu leu... 02-09-10 à 18:11

Bonjour godefroy,

Bravo pour cette énigme sur laquelle j'avais travaillé.


 Cliquez pour afficher

Posté par
godefroy_lehardi Posteur d'énigmes
re : PPCM à la queue leu leu... 02-09-10 à 20:05

Félicitations caylus

Je suis impressionné par vos capacités à tous pour la programmation !



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 !