Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

LES NOMBRES DE KAPREKAR


Information sur la source

Catégorie :Maths & Algorithmes Classé sous : Kaprekar, algorithme, suite, inutile Niveau : Débutant Date de création : 16/11/2007 Date de mise à jour : 18/11/2007 10:31:28 Vu / téléchargé: 2 803 / 70

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


Description

Cliquez pour voir la capture en taille normale
L'algorithme de Kaprekar consiste à choisir un nombre n puis:
tant que n' != n
n = n'
soit n1 le nombre forme par les chiffres de n classés en ordre décroissant
soit n2 le nombre forme par les chiffres de n classés en ordre croissant
n' = n1 - n2
fin tant que

On montre que une suite ainsi construit ne converge que vers certains nombres particuliers, qui sont dit de Kaprekar.
Par extension, un nombre de Kaprekar est un nombre dont le carré peut se scinder en la somme du nombre.
Plus d'info sur http://mathworld.wolfram.com/KaprekarRoutine.html (page ultra complète)

Le petit programme que je propose permet de tester si un nombre est de Kaprekar ou non, ainsi que de vérifier que la suite de Kaprekar converge bien pour les nombres à 4 chiffres. La plupart du temps, la valeur finale est 6174, appelée constante de Kaprekar

 

Conclusion

Je crois pas qu'il y ait des application aux nombres de kaprekar, mais j'aime les trucs inutiles :).
A faire : permettre de vérifier la convergence de la suite de Kaprekar pour les nombres avec un plus de 4 chiffres


PS: j'utilise la fonction itoa qui n'est pas standard, mais on peut aussi se débrouiller sans (c'est plus long).
 

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip

Historique

18 novembre 2007 10:31:28 :
Correction de la faute "n1-n2" au lieu de "n1 + n2"

Commentaires et avis

signaler à un administrateur
Commentaire de Lucky92 le 17/11/2007 12:13:33

C'est n' = n1 - n2 et non n' = n1 + n2 , sinon ça converge pas.

Moi aussi j'aime bien ce genre de futilité - sans doute un problème créé pendant la guerre froide pour déconcentrer les scientifiques occidentaux ;>

Quant à tes scrupules à utiliser la fonction itoa() et ton envie d'aller au-delà de 4 chiffres, je te propose d'alléger ton source avec le code standard suivant :

std::string i2s( long n )
{
std::ostringstream oss ;
oss << n ;
return oss.str() ;
}
long s2i( const std::string& s )
{
long n ( 0 ) ;
std::istringstream iss ( s ) ;
iss >> n ;
return n ;
}
long algo_kaprekar( long n )
{
std::string n1 ( i2s( n ) ) ;
std::sort( n1.begin() , n1.end() , std::greater<char>() ) ;

std::string n2 ( i2s( n ) ) ;
std::sort( n2.begin() , n2.end() , std::less<char>() ) ;

return s2i( n1 ) - s2i( n2 ) ;
}

C'est un sujet trés intéressant.

signaler à un administrateur
Commentaire de Abrahamz le 18/11/2007 10:30:30

C'est du c++ que tu me fait là non ? Je touche pas trop au c++ :). Auparavant je l'avait fait avec des opérations sur les nombres (genre des modulos et des divisions par 10 pour obtenir le i-ème chiffre).

Par contre oui tu as raison pour le commentaire, c'est bien n1 - n2 (c'est ce que j'ai mis dans la source mais j'ai pas un labsus dans la présentation).

merci !

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem Algorithme de compression STAR amélioré [ par hi_vivie2 ] Bonjour à tous,Je dois réaliser de manière urgente l'implémentation en java de l'algorithme de compression STAR amélioré appliqué aux images en mouvem un programme à creer [ par yoyo ] je dois creer un programme permettant d trouver les nombres premiers.l'algorithme est donné, et il utilise des tableaux dont les cases sont remplies p Plusieurs variables en une [ par CoQ87 ] Oui je sais c'est assez con mais je debute en c++ et je n'arrive pas à mettre le contenu de deux variables int a la suite (pas daddition, soustraction Qui sait l'algorithme pour calculer les racines? [ par TMT ] Aidez-moi! conversion de la partie fractionnaire en base n [ par Alucard ] J'ai vu qu'il y avait beaucoup d'algorithme de la partie entière (int) d'un nombre en n'importe quel base mais je voulais savoir si quelqu'un avait un Algorithme de mélange [ par C2S ] bonjour, j'aimerais connaitre un algorithme de mélange d'un tableau... (aléatoire) ... c'est pour simuler une fonction "mélanger" relative a un paquet aide sur l'algorithme AMR [ par semecurbep ] Votre texte iciVotre texte ICIVotre texte ICI map basic?????? [ par Sfoued2003 ] slt tout le monde,je me demande si je peux faire implémenter un algorithme de Electre1 sur map basic, pour pouvoir l'utiliser aprés sur map info? et ç algorithme de gauss et decomposition LU [ par speedamine ] bonjour a tous.je voudrai avoir des algorithmes ,ecrits en borland pascal,suivants:methode de gauss ordinaire pour la resolution d'un systeme .la deco


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,281 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.