Forum INFOMATH
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

Algorithme de Kaprekar

+3
manianis
Anissou
Napoléon
7 participants

Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Algorithme de Kaprekar

Message par Napoléon Sam 27 Oct - 23:49

Algorithme de Kaprekar

Salut
Je n'arrive pas à résoudre cette énigme.

  • Prenons un nombre de trois chiffres distincts, par exemple 748,
  • Ecrivons les deux nombres obtenus en rangeant ses chiffres par ordre décroissant : 874 et par ordre croissant : 478.
  • Effectuons la différence : 874 - 478 = 396
  • Recommençons la même opération avec 396 : 963 - 369 = 594
  • Inutile de poursuivre : à l'évidence on retrouve 495.
Est-ce que
quelque soit le nombre de trois chiffres distincts choisi au départ, l'algorithme que
nous venons de décrire conduit immanquablement à 495 ?

J'en profite pour lancer un Topic qui concerne
l'algorithme Kaprekar.
J'espère que tout le monde en profite.


kaprekar* - Algorithme de Kaprekar 848511


Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue999/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par Anissou Ven 7 Déc - 18:40

Evil or Very Mad

Anissou
Entier Naturel
Entier Naturel

Nombre de messages : 1
Localisation : Tunis
Réputation : 0
Points : 6196
Date d'inscription : 07/12/2007

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par manianis Ven 7 Déc - 19:40

Soit V la différence ci-dessus max=xyz, min=zyx (x, y, z les chiffres du nombre) :

V = abs(x*100+y*10+z - z*100-y*10-x) = abs(x*100+z - z*100-x)
V = abs(99*z-99*x) = 99*abs(z-x)

n1=abs(z-x) = 1 ; V=099
n2=abs(z-x) = 2 ; V=198
n3=abs(z-x) = 3 ; V=297
n4=abs(z-x) = 4 ; V=396
n5=abs(z-x) = 5 ; V=495
n6=abs(z-x) = 6 ; V=594
n7=abs(z-x) = 7 ; V=693
n8=abs(z-x) = 8 ; V=792
n9=abs(z-x) = 9 ; V=891

La différence entre deux nombre max et min sera toujours une valeur parmi les valeurs cités ci-dessus.

Pour n'importe quelle valeur initiale de trois chiffres distincts on aboutira toujours à 495.

V=099 => (x:9, z:0) => V1=891 => (x:9, z:1) => V2=792 => (x:9, z:2) => V3 = 693 => (x:9, z:3) => V4=594 => (x:9, z:4) => V5=495 => (x:9, z:4) => V6=495

V=198 => (x:9, z:1) => V1=792 => (x:9, z:2) => V2 = 693 => (x:9, z:3) =>
V3=594 => (x:9, z:4) => V4=495 => (x:9, z:4) => V5=495

V=297 => (x:9, z:2) => V1 = 693 => (x:9, z:3) =>
V2=594 => (x:9, z:4) => V3=495 => (x:9, z:4) => V4=495

V=396 => (x:9, z:3) =>
V1=594 => (x:9, z:4) => V2=495 => (x:9, z:4) => V3=495

V=495 => (x:9, z:4) => V1=495 => (x:9, z:4) => V2=495

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6255
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue999/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par manianis Ven 7 Déc - 19:48

Code:
program Kaprekar;
var i, v,
    u, c, d, aux,
    max, min : integer;
begin
    for i:=100 to 999 do begin
        v := i;
        repeat
            c := v div 100;
            d := (v div 10) mod 10;
            u := v mod 10;
            if (c = d) and (d = u) then break;
            if (d > c) then begin aux:=d; d:=c; c:=aux; end;
            if (u > d) then begin aux:=u; u:=d; d:=aux; end;
            if (d > c) then begin aux:=d; d:=c; c:=aux; end;
            max := c *100 + d * 10 + u;
            min := u *100 + d * 10 + c;
            v := max - min;
        until (v = 495);
        if (v = 495) then Write(i,',');
    end;
    Readln;
end.

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6255
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue999/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par Napoléon Ven 7 Déc - 22:34

Soit V la différence ci-dessus
max=xyz, min=zyx (x, y, z les chiffres du nombre) :
V = abs(x*100+y*10+z - z*100-y*10-x) = abs(x*100+z - z*100-x)
V = abs(99*z-99*x) = 99*abs(z-x)

Puisque xyz est l'écriture du plus grand nombre constitué des chiffres x,y,z, alors, on doit avoir x>z, donc, on n'a pas besoin de la valeur absloue.
V = max - min = 99(x-z) > 0.

n1=abs(z-x) = 1 ; V=099
n2=abs(z-x) = 2 ; V=198
n3=abs(z-x) = 3 ; V=297

Il ne faut pas oublier les nombres tels que x=y=z. Dans ce cas,
il faut ajouter n0 = 0.

Merci manianis pour le développement de la solution.
a+
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue999/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par ihecien Ven 7 Déc - 23:28

manianis a écrit:V=099 => (x:9, z:0) => V1=891 => (x:9, z:1) => V2=792 => (x:9, z:2) => V3 = 693 => (x:9, z:3) => V4=594 => (x:9, z:4) => V5=495 => (x:9, z:4) => V6=495

V=198 => (x:9, z:1) => V1=792 => (x:9, z:2) => V2 = 693 => (x:9, z:3) =>
V3=594 => (x:9, z:4) => V4=495 => (x:9, z:4) => V5=495

V=297 => (x:9, z:2) => V1 = 693 => (x:9, z:3) =>
V2=594 => (x:9, z:4) => V3=495 => (x:9, z:4) => V4=495

V=396 => (x:9, z:3) =>
V1=594 => (x:9, z:4) => V2=495 => (x:9, z:4) => V3=495

V=495 => (x:9, z:4) => V1=495 => (x:9, z:4) => V2=495
Où a tu remplacer x et z?

ihecien
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 23
Age : 40
Localisation : Exponentielle
Réputation : 0
Points : 6223
Date d'inscription : 10/11/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue1000/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par suneddine Sam 8 Déc - 0:16

ihecien a écrit:
manianis a écrit:V=099 => (x:9, z:0) => V1=891 => (x:9, z:1) => V2=792 => (x:9, z:2) => V3 = 693 => (x:9, z:3) => V4=594 => (x:9, z:4) => V5=495 => (x:9, z:4) => V6=495

V=198 => (x:9, z:1) => V1=792 => (x:9, z:2) => V2 = 693 => (x:9, z:3) =>
V3=594 => (x:9, z:4) => V4=495 => (x:9, z:4) => V5=495

V=297 => (x:9, z:2) => V1 = 693 => (x:9, z:3) =>
V2=594 => (x:9, z:4) => V3=495 => (x:9, z:4) => V4=495

V=396 => (x:9, z:3) =>
V1=594 => (x:9, z:4) => V2=495 => (x:9, z:4) => V3=495

V=495 => (x:9, z:4) => V1=495 => (x:9, z:4) => V2=495
Où a tu remplacer x et z?

prenons le 1er cas V=099 donc max=990 et min=099 et donc x=9 et z=0
maintenant on fait la différence maw-min et on trouve V1 et ainsi de suite
suneddine
suneddine
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 730
Age : 39
Localisation : tunisie
Réputation : 5
Points : 6322
Date d'inscription : 11/11/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue995/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (995/1000)

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par ihecien Sam 8 Déc - 0:18

mosa a écrit:prenons le 1er cas V=099 donc max=990 et min=099 et donc x=9 et z=0
maintenant on fait la différence maw-min et on trouve V1 et ainsi de suite
Merci...

ihecien
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 23
Age : 40
Localisation : Exponentielle
Réputation : 0
Points : 6223
Date d'inscription : 10/11/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue1000/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par suneddine Sam 8 Déc - 0:24

Admin a écrit:
Soit V la différence ci-dessus
max=xyz, min=zyx (x, y, z les chiffres du nombre) :
V = abs(x*100+y*10+z - z*100-y*10-x) = abs(x*100+z - z*100-x)
V = abs(99*z-99*x) = 99*abs(z-x)

Puisque xyz est l'écriture du plus grand nombre constitué des chiffres x,y,z, alors, on doit avoir x>z, donc, on n'a pas besoin de la valeur absloue.
V = max - min = 99(x-z) > 0.

manianis a utilisé abs pour qu'il puisse faire abs(x*100+z - z*100-x)=abs(99*z-99*x)

c'est à dire abs(x)=abs(-x)

n1=abs(z-x) = 1 ; V=099
n2=abs(z-x) = 2 ; V=198
n3=abs(z-x) = 3 ; V=297

Il ne faut pas oublier les nombres tels que x=y=z. Dans ce cas,
il faut ajouter n0 = 0.

Merci manianis pour le développement de la solution.
a+

la condition de l'algorithme est que x<>y<>z
suneddine
suneddine
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 730
Age : 39
Localisation : tunisie
Réputation : 5
Points : 6322
Date d'inscription : 11/11/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue995/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (995/1000)

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par suneddine Sam 8 Déc - 0:29

mais maintenant il faut justifier l'utilisation de abs, est-elle nécessaire?
suneddine
suneddine
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 730
Age : 39
Localisation : tunisie
Réputation : 5
Points : 6322
Date d'inscription : 11/11/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue995/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (995/1000)

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par Napoléon Sam 8 Déc - 1:08

mosa a écrit:mais maintenant il faut justifier l'utilisation de abs, est-elle nécessaire?

Voir ci-dessus: la valeur absolue n'est pas nécessaire puisque par hypothèse:
1. le nombre est formé des chiffres {x,y,z}
2. le max est de la forme xyz

donc x>z.

Exemple:
Le nombre 537 => max=753 => x=7, y=5 et z=3.
Napoléon
Napoléon
Admin
Admin

Masculin
Nombre de messages : 2934
Localisation : Tunisie
Réputation : 122
Points : 7872
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue999/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (999/1000)

https://infomath.1fr1.net

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par informix Sam 8 Déc - 12:20

Oui, la valeur absolue est inutile (voir la définition du MAX par manianis).
Mais l'idée de la démonstration est très correcte.

Il y a eu plusieurs travaux de recherche sur ces nombres. Il suffit de voir www.wikipedia.fr
informix
informix
Nombre Rationnel
Nombre Rationnel

Nombre de messages : 399
Réputation : 4
Points : 6526
Date d'inscription : 19/03/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue1000/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (1000/1000)

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par manianis Sam 8 Déc - 17:33

Merci pour vos enrichissements à propos de ce sujet. En fait, oui la valeur absolue est inutile dans ce cas.

Vous pourrez deviner que j'avais écrit :
[quote=manianis]
V = abs(x*100+y*10+z - z*100-y*10-x) = abs(x*100+z - z*100-x)
V = abs(99*z-99*x) = 99*abs(z-x)[/quote]
avant d'écrire :
[quote=manianis]Soit V la différence ci-dessus max=xyz, min=zyx (x, y, z les chiffres du nombre) :[/quote]

manianis
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 6255
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
kaprekar* - Algorithme de Kaprekar Left_bar_bleue999/1000kaprekar* - Algorithme de Kaprekar Empty_bar_bleue  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par tesnime Ven 8 Avr - 20:03

merci

tesnime
Entier Naturel
Entier Naturel

Féminin
Nombre de messages : 3
Localisation : tébourba
Réputation : 0
Points : 4981
Date d'inscription : 08/04/2011

Revenir en haut Aller en bas

kaprekar* - Algorithme de Kaprekar Empty Re: Algorithme de Kaprekar

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum