begin process at 2012 02 12 08:47:28
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Maths & Algorithmes

 > LES NOMBRES DE KAPREKAR

LES NOMBRES DE KAPREKAR


 Information sur la source

Note :
Aucune note
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é :5 566 / 111

Auteur : Abrahamz

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
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

Les Membres Club peuvent 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"

 Sources du même auteur

Source avec Zip Source avec une capture FRACTALE TRES SIMPLE
Source avec Zip Source avec une capture CONVERSION D'UN NOMBRE D'UNE BASE QUELCONQUE VERS UNE AUTRE

 Sources de la même categorie

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture CHIFFREMENT DE VIGENERE par lajouad
Source avec Zip Source avec une capture ANALYSE SYNTAXIQUE par lajouad
Source avec Zip Source avec une capture STRUCTURE D'UNE MATRICE PAR LES LISTE LINÉAIRE (NON CONTUGUS... par benzarabel
Source avec Zip Source avec une capture DESSINER UNE ARBRE BINAIRE( MODE CONSOLE): par benzarabel

 Sources en rapport avec celle ci

Source avec Zip UN EXAMPLE D'APPLICATION EN CUDA DE L'ALGORITHME DE SCAN POU... par oguzaras
Source avec Zip Source avec une capture RÉSOLUTION SUDOKU (9X9) PAR BACKTRACKING RÉCURSIF INTELLIGEN... par Gallien69
GÉRER UN COMBAT DANS UN JEU 2D / ALGORITHME PRIMAIRE D'UNE I... par Chiheb2010
Source avec Zip BELLMAN:LA VALEUR DU PLUS COURT CHEMIN ET LE PLUS COURT CHEM... par Perace
Source avec Zip COMPRESSION / DECOMPRESSION SELON L'ALGORITHME LEMPELZIV 78V par th1man

Commentaires et avis

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.

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...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,373 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales