
Forum dédié aux énigmes et à toutes formes de jeux de logique. | Déconnexion |
|
Tu n'es pas identifié sur Prise2tete : s'identifier. Accueil
Forum
|
![]() |
#1 - 17-04-2024 20:36:37
preuve d'akgorithmeUne petite énigme qui est bien mathématique, quoi qu'on en pense. Code:int countOnes(unsigned long number) {
number = number - ((number>>1) & 0x7777777777777777)
- ((number>>2) & 0x3333333333333333)
- ((number>>3) & 0x1111111111111111);
return (((number + (number >> 4)) & 0x0F0F0F0F0F0F0F0F)
* 0x0101010101010101 ) >> 56;
}Votre tache : démontrer que cette fonction renvoie bien ce qu'elle est supposée faire.
#0 Pub#2 - 18-04-2024 02:19:55
rPeuve d'algorithmeGrille de lecture pour les non-initiés : #3 - 19-04-2024 13:51:49
Preuve d'alogrithmeBonjour Scarta #4 - 19-04-2024 14:14:58
Preuve d'aalgorithmeAvec un compilateur sur le web Code:/***********************
Online C Compiler.
**********************/
#include <stdio.h>
int countOnes(unsigned long number) {
number = number - ((number>>1) & 0x77)
- ((number>>2) & 0x33)
- ((number>>3) & 0x11);
return (((number + (number >> 4)) & 0x0F)
* 0x01 ) ;
}
int main()
{
int nb =254;
printf("%d %d",nb,countOnes(nb));
return 0;
}#5 - 20-04-2024 10:38:17
Preuve d'algorihtmeLe premier calcul #6 - 22-04-2024 00:47:37
Preuve d'algorithhmeC’est exactement ça ! #7 - 22-04-2024 00:55:00
preuve d'algorithmrJ’ai essayé d’autres variantes : 21 paquets de 3 qui donnent 10 de paquets de 6 et on prend les 4 premiers bits à part, celle mentionnée ci dessus, paquets de 8 directement, … Réponse rapideSujets similaires
|
![]() | ||||||||||||||||||||||||||||||
| Prise2Tete Forum Statistiques Liste des membres Hall of Fame Contact | ||||||||||||||||||||||||||||||||