CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

algorithme calculer le nombre 0 dans la

Tidus1188
Tidus1188
Niveau 10
16 avril 2007 à 23:26:11

Au fait, se jeter sous un pont ? C´est utile ?

Tu ne voulais pas plutôt dire, Jeter du haut d´un pont ? :o))

Parceque je saute sous un pont si je veux, je n´ai rien...

Watza][Kamikaze
Watza][Kamikaze
Niveau 8
16 avril 2007 à 23:37:16

oui spour que je me quotais tidus...

" * snake645 profil
* Posté le 16 avril 2007 à 23:14:41 avertir modérateur
* le nombre entré est en binaire

"

Tidus1188
Tidus1188
Niveau 10
16 avril 2007 à 23:43:21

Ouai mais tu as posté en même temps que moi :fier:

ToMasterman
ToMasterman
Niveau 9
17 avril 2007 à 09:12:27

Vos deux algorithmes se valent, puisqu´un décalage ´>>´ ( et non ´<<´ :-p ) équivaut en binaire à diviser par 2 en faisant sauter le reste de la division euclidienne.
Cependant, d´un point de vue informatique, les opérations bits-à-bits étant plus rapides, c´est la méthode conseillée, avec un filtrage par masque 0x01 et opérateur binaire & pour voir si le dernier chiffre est 1 ou 0 :-p
Ca donnerait en C++ ( vu que je pense que vous l´utilisez ):

int Zeros = 0;
int Nombre = LeNombre;
while (Nombre != 0)
{
(Nombre&0x01 == 1 ? ++Zeros); // On teste si le dernier chiffre est un 1, si oui, on incrémente
Nombre>>=1; // On divise par 2 en faisant sauter le reste
}
printf("Le nombre de zéros est %d",Zeros); // Et on affiche

snake645
snake645
Niveau 7
17 avril 2007 à 11:08:04

:merci: d´abord pour les reponses
ce que je cherche c´est que l´utilisateur entrer un nombre binaire
par exemple 100010010011
il me renvoit le nombre de zero dans ce nombre
ici 7
:merci:

tauruxbis
tauruxbis
Niveau 10
17 avril 2007 à 18:15:21

Quoi c´était ça ?? ???? Kiiiiih ! Mais c´est pas dur ! Je croyais que tu voulais une règle mathématique qui donne directe le nombre de 0 à partir du nombre en décimale !!

Par contre brice-de-nice, ta méthode est un peu comme celle que j´ai réfléchi ce matin, elle est foireuse, car plus le nombre est grand, et plus ça prendra de mémoire.

Mais moi j´étais parti sur une définition par récurrence locale du nombre de 0 par rapport au nombre en décimale, et je me suis vite rendu compte que ça allait couter beaucoup de mémoire (mon programme consiste à réecrire une parti de l´énorme fonction plutot que de chercher tous les 0 à partir d´une seule valeur, on réecrit autant de 0 pour ce qui correspond au saut qui contient le nombre (il faut donc préalablement déterminer n). Le problème vient du fait que mon programme est censé utiliser une matrice, et vu l´encodage, si on calcul le nombre de 0 d´un nombre comme 1 milliard (en décimal), le programme à son exécution prendra 8 Giga de RAM !! Quelle horreur non ?

Mais avec cette nouvelle information, je pense que ça devrait être simple, il suffit de faire comme vous avez tous compris, on divise par 2, et au lieu de compter n, on compte n-k.

Au fait, tu veux bien le nombre de 0 à partir du premier 1 ? Car il est conventionnelle d´écrire les binaire par 8 chiffres (par exemple, on dit que 25 , c´est 00011001).

tauruxbis
tauruxbis
Niveau 10
17 avril 2007 à 18:18:56

J´ai bien dit récurrence locale, mais ce n´est pas seulement ça, ce sont des récurrence groupées à l´intérieur de récurrence, en fait, plus le nombre est grand (et en fait n), plus il y aura de récurrence à prendre en compte (il faudrait que je vous montre la tête qu´à la fonction rien que de 64 à 128 ^^)

tauruxbis
tauruxbis
Niveau 10
17 avril 2007 à 19:11:55

Voilà le programme en C++ que je viens de faire qui calcule le nombre de 0 à partir du nombre en decimal :

  1. include <iostream>
  2. include <stdlib.h>
  3. include <stdio.h>
  4. include <math.h>

using namespace std;

int main()
{
double bin;
cout << "nombre en decimal ? ";
cin >> bin;
double a;
a = bin;
int b=0;
double p;
double c = 10;
int g=0;
int h=0;
while (c != 0)
{
c--;
p = (a - (pow (2,c)));
if (p >= 0 && h != 1)
{
if (p == 0)
{
h=1;
}
g=1;
a = (a - (pow (2,c)));
}
else
{
if (g == 1)
{
b++;
}
}
}
cout << endl << b << endl;

system ("PAUSE");
return 0;
}

En espérant t´avoir aidé :)

Watza][Kamikaze
Watza][Kamikaze
Niveau 8
17 avril 2007 à 19:15:11

:lol: Celui de To est bien mieux même si ici, c´est du C...(certes, certes, mais le printf marque le codage en C =P)

:( J´avais fait le prologin spour ça mais la prog en C, baorf inintéressant à mon échel :(

Watza][Kamikaze
Watza][Kamikaze
Niveau 8
17 avril 2007 à 19:16:02

Je suis une sous-merde en orthographe.

tauruxbis
tauruxbis
Niveau 10
17 avril 2007 à 19:17:26

Au fait mon programme marche pour un nombre inférieur à 2^10 (soit inférieur à 1024), pour augmenter l´intervalle, il faut augmenter "c" à sa déclaration, j´ai eu la flemme de mettre l´algorithme qui le gère ^^

tauruxbis
tauruxbis
Niveau 10
17 avril 2007 à 19:19:27

Oui mais moi je propose une manière mathématique de le calculer, tandis que lui c´est une fonction graphique (c´est comme ça qu´on dit ? ^^) :)

Watza][Kamikaze
Watza][Kamikaze
Niveau 8
17 avril 2007 à 19:20:04

Un algo, c´est un algo.

Fonction graph ? :doute:

tauruxbis
tauruxbis
Niveau 10
17 avril 2007 à 19:22:53

Eh bien c´est simple, son programme regarde à chaque adresse du nombre binaire si on a un 0 ou un 1, on ne pourrait pas le refaire sur d´autres bases, mais moi c´est bel et bien une règle ^^ (je suppose qu´il suffit de modifier un ou 2 nombre dans mon programme pour que ça marche sous une autre base)

ToMasterman
ToMasterman
Niveau 9
17 avril 2007 à 21:42:16

D´ailleurs je me suis gouré lors du test, c´est pas ´== 1´ mais ´== 0´ :rire:
Sinon ouais, c´est du C :D mais bon c´est compatible C++ :-p

Sinon faut faire gaffe avec ´bin´, c´est un mot réservé pour le flot d´entrée/sortie tout comme ´hex´, ´endl´.

Watza][Kamikaze
Watza][Kamikaze
Niveau 8
17 avril 2007 à 22:41:55

avais pas vu.

un "!" suffit au lieu d´un ==0 ou ==1 ^^

tauruxbis
tauruxbis
Niveau 10
18 avril 2007 à 12:42:06

Oui ! Maintenant que tu le dis. En fait quand j´avais commencé le programme, je voulais le faire pour le binaire, donc j´ai mis "bin", mais je me suis dit que c´est plus pratique d´entrer le nombre en decimal ;)

snake645
snake645
Niveau 7
19 avril 2007 à 20:09:06

oui c plus simple en decimal

Sous forums
  • Cours et Devoirs
  • Politique
  • Métiers & Orientation
  • Environnement & Nature
  • Histoire
  • Philosophie
La vidéo du moment