Hello!

Inspiré(e) de prendre part à la discussion ? Ou de poser une question ou demander de l’aide ?

Alors bienvenues dans les grands sujets des forums de La Bulle : m’inscrire.

Cette partie du forum n’est pas compatible avec les bloqueurs publicitaires

Félicitations à vous, de préférer les accès payants plutôt que la gratuité par la publicité, c’est honnorable et cohérent de votre part. Malheureusement, l’accès payant par micropaiement (qui serait d’environ 1 cent pour 20 pages consultées) n’est pour l’instant pas encore mis en place, et l’accès gratuit sans publicité, est réservé aux membres actif(ve)s du forum. En attendant, si vous souhaitez poursuivre votre visite chez nous, vous pouvez ajouter le site à votre liste blanche, ou encore mieux, désactiver le bloqueur partout. Pour ajouter le site à votre liste blanche, pour Firefox (similaire pour les autres navigateurs), rendez‑vous en bas à gauche de la fenêtre de votre navigateur, et cliquez sur le menu comme dans l’exemple de l’image ci‑dessous, puis rechargez la page, en appuyant sur F5.

Nombre de digit binaire pour representer un entier de 1 à 50 ?
Auteur Message
Beau Parleur
Beau Parleur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 320
Ven 4 Mar 2016 13:41
Message Nombre de digit binaire pour representer un entier de 1 à 50 ?
Bonjour,
Bonjour, Hibou, je sais que tu passera par là.

J'ai un problème de representation.
Comme l'indique le titre il s'agit de représenter un entier compris de 1 à 50 avec un nombre suffisant de digit binaire.

J'ai compter, il m'en faut 6, j'ai écrit un programme qui calcule ce nombre qui donne 6.

Mais voilà, à l'utilisation de ce nombre dans mon programme final, seule 32 valeurs son représentale.

Avant j'utiliser parfois l'attribut size, mais ça ne marche pas toujours.

La si j'utilise l'attribut Size là ou je le fait ça retourne 31.

Le programme s'appelle Gnar pour Gnu Neural Against Random qui est dispo en archive sur http://88.189.147.62/Public/Gnar/ C'est un programme qui sort des numéros pour jouer au loto ou à l'euromillion en exploitant des réseaux de neurones artificiels.
Ce n'est pas documenté.

Voilà, si quelqu'un trouve mon erreur je suis preneur, ou comment procéder.


Mon code qui calcule la longueur d'un mot binaire pour un entier fixé.

Source ada : 

function Size_For return Positive is
Length : Natural := Natural(Item_Type'Last - Item_Type'First + 1);
Size : natural := 1;
begin
loop
Length := Length - (Length/2);
if Length = 1 then
return Size;
else
Size := Size + 1;
end if;

end loop;

end Size_For;
Profil
Beau Parleur
Beau Parleur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 320
Ven 4 Mar 2016 15:22
Message Re: Nombre de digit binaire pour representer un entier de 1 à 50 ?
Op !

J'ai trouvé mon erreur. J'étais le mieux placé.

Merci Quand même Hibou.
Merci à tout le monde.
Profil
Administrateur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 16070
Ven 4 Mar 2016 20:35
Message Re: Nombre de digit binaire pour representer un entier de 1 à 50 ?
Emmanuel Sens a écrit : 
[…] La si j'utilise l'attribut Size là ou je le fait ça retourne 31 […]

L’attribut Size, renseigne sur la taille de la représentation binaire pour le type. C’est l’attribut d’un type, il n’est pas un attribut d’une valeur.

Pour la fonction, je n’ai pas trop regardé, parce que comme elle ne prend pas d’argument, il me semble manqué quelque chose.

Emmanuel Sens a écrit : 
J'ai trouvé mon erreur. J'étais le mieux placé.

Je ne sais pas comment tu as fais, mais disons que ça se définirait comme suit : étant donné une base N, la longueur minimale pour représenter un entier naturel E, c’est le plus petit entier L tel que N ^ L >= E (ou “^” représente l’exponentiation).

Je l’aurais fais environ comme ça (je n’ai plus de compilateur Ada, alors il faudra excuser les éventuelles erreurs) :

Source Ada : 

function Representation_Length (Value: Natural; Base: Positive := 10)
return Positive
with Pre => (Base >= 2)
is
Result : Natural := 0; -- Initial — computed incrementally.
Remaining : Natural := Value; -- Digits to be consumed and counted.
begin
-- Count and drop digits one by one until there are no more left.
loop
Remaining := Remaining / Base; -- Drop one digit …
Result := Result + 1; -- … and count it.
exit when Remaining = 0; -- All digits consumed.
end loop;
-- Result is always at least 1, so it fits in the Positive subtype.
return Result;
end;

Image
Hibou57

« La perversion de la cité commence par la fraude des mots » [Platon]
Profil Site Internet
Beau Parleur
Beau Parleur
Avatar de l’utilisateur
  • Genre : Télétubbie
  • Messages : 320
Sam 5 Mar 2016 08:45
Message Re: Nombre de digit binaire pour representer un entier de 1 à 50 ?
ouais, mais ça va je sais utiliser un attribut.

L'erreur était dans le nombre de sortie de mon réseaux de neurone.
Normalement initializé à L taille du language soit 50boule et il était à Language_type'Size soit cette valeur representent le nombre de digit binaire pour un entier fixé soit 50 ce qui donne 6, multiplié par Window le bombre de boule tiré ; Ce qui ne correspond pas au problème.

Mais merci Hibou pour ton code.
Profil