begin process at 2012 05 28 12:42:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Algorithme

 > 

Maths

 > 

Algo utile ou complètement "bidon"??


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Algo utile ou complètement "bidon"??

lundi 11 décembre 2006 à 22:38:43 | Algo utile ou complètement "bidon"??

ninjagtr

Bonjour,
Je suis tombé sur un bout de code et je ne sais pas s'il a une utilité (autre que de me faire chercher lol).

Voici le code :

int Devinez(int x)
       {
           int n=0;
           while(x)
           {
               n++;
               x &= x-1;
           }
           return n;
       }

Sur point de vue du code, je sais ce qui se passe, mais l'utilité de cette aglo me trouble. Je n'ai rien vu d'évidant pour l'instant.

Pour ce qui si connaisse bien en math, mais pas forcément en C, voici une petite explication de ce que fait ce bout de code :

On appel la fonction "Devinez" et on lui donne un argument  x de type entier.
Dans cette fonction on initialise une variable de type entier "n" à 0.
Dans la boucle while qui va s'executer si x est différent de 0, on va incrémenter la valeur n de 1 puis effectuer une opération de ET logique entre la valeur de x et la valeur de x-1 et ce résultat on le retourne dans x.
Dès que x sera nul, on sortira de cette boucle et la fonction Devinez retournera la valeur n qui aura pour valeur, le nombre d'itération de la boucle.


lundi 11 décembre 2006 à 23:14:13 | Re : Algo utile ou complètement "bidon"??

vecchio56

Administrateur CodeS-SourceS
Réponse acceptée !
Apparemment ca retourne le nombre de 1 dans la représentation binaire

_____________________________________
Un éditeur de ressources gratuit pour Windows

lundi 11 décembre 2006 à 23:23:05 | Re : Algo utile ou complètement "bidon"??

Ombitious_Developper

Salut:

D'après son nom ça semble comme un générateur de nombre pseudo-aléatoire.


lundi 11 décembre 2006 à 23:32:29 | Re : Algo utile ou complètement "bidon"??

ninjagtr

Réponse acceptée !
Je viens juste de  faire fonctionner cette fonction sur un grand nombre de valeur de x.
Je constate que l'algo retourne la valeur 1 dès que x = 1 2 4 8 16 32 64 ....
En regardant de plus près les valeurs retournées pour les valeurs de x autre que 1 2 4 8 16 ... on y voit bien que les valeurs retournées correspondes au nombre de 1 de la représentation binaire de valeur x.
Ta étais plus rapide que moi vecchio56 .
Merci


Cette discussion est classée dans : fonction, boucle, code, int, valeur


Répondre à ce message

Sujets en rapport avec ce message

pb sur une simple boucle do while :-(( [ par msoin ] jour'alors, voila, j'apprend en ce moment les fonctions à argument, et ce qui se met clocher c'est une boucle!!!!Donc voici mon code, le pb se situe Retour de la valeur d'une variable dans une fonction. [ par did2604 ] Bonjour,J'ai un petit problème avec la fonction suivante. Dans ma fonction, j'incrémente une variable nommée vt2. Je souhaite retourner dans le main c fonction apply / template [ par pointejb ] Bonjour à tous,Je cherche un moyen d'implémenter une fonction de type 'apply' qui prendrait en parametres une fonction et ses arguments et qui aurait Probleme de pointeur (enfin je pense) dans l'utilisation d'une fonction [ par neutrix ] Salut.. Help  Je souhaite créer un main et une fonction. Tout cela me servira ensuite en info industriel pour un microcontroleur. Le main s'occupera Construire tableau code binaire des caractères avec l'arbre de Huffman [ par lordvan ] Bonjour à tous, voilà, je suis en train d'essayer de faire une fonction de parcours d'arbre de huffman. Cette fonction a pour rôle de construire le co Boucle ne s'éxécute pas [ par Niwrad ] Bonjour à tous, Je suis plus ou moins débutant en programmation C, Je souhaite créer un programme (console) m'affichant une pyramide d'étoiles en fonc Modification d'une fonction [ par amouna22528013 ] Salut, Je veux modifier une fonction de lecture d'un fichier des données en entrée. La fonction ne peut lire que des données codées en numéros [quote] Convert char** en int sous c [ par clavz40 ] Bonjour a tous, Je développe une petite application en c pour appareil de lecture de code barre dont je récupère les infos. J'avais besoin d'une fon fonction avec un type file* [ par vercd7am ] Bonjour, j'ai ecrit quelques lignes de code pour pouvoir lire un fichier txt. [code=cpp]int main() { int c; FILE *fichier = NULL; fichi les fichier en C [ par abdobergach ] bonjour j'ai un erreur qui je connais pas pouquoi qlq'un m'aider svp,voila l'eerreur: error C2664: 'CreateFileW'*: impossible de convertir le paramètr


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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,076 sec (3)

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