Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
922 connectés 

  FORUM HardWare.fr
  Programmation
  C

  calcul de i tel que 2^(i-1)<T<=2^i

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

calcul de i tel que 2^(i-1)<T<=2^i

n°520559
theorie du​ chaos
morte et enterrée
Posté le 22-09-2003 à 19:17:09  profilanswer
 

y a-t-il une formule toute faite?


Message édité par theorie du chaos le 22-09-2003 à 19:19:41
mood
Publicité
Posté le 22-09-2003 à 19:17:09  profilanswer
 

n°520560
chrisbk
-
Posté le 22-09-2003 à 19:18:03  profilanswer
 

[:xx_xx]
 
sans rien comprendre a ce que tu veux je te reponds non direct [:ddr555]


Message édité par chrisbk le 22-09-2003 à 19:18:24
n°520561
theorie du​ chaos
morte et enterrée
Posté le 22-09-2003 à 19:19:26  profilanswer
 

oups je me suis gouree dans le titre :D j ai T et je cherche i :D

n°520562
Taz
bisounours-codeur
Posté le 22-09-2003 à 19:20:47  profilanswer
 

ben 0, 1, etc

n°520564
theorie du​ chaos
morte et enterrée
Posté le 22-09-2003 à 19:21:54  profilanswer
 

un algo qui test a chaque fois :/
 
y a pas de formule genre avec des parties entieres et des logs en C? :ange:

n°520566
Carbon_14
Posté le 22-09-2003 à 19:22:58  profilanswer
 

?? Calcul de i ?
Si on a i, on calcule 2^(i-1) puis 2^i et on a tous les T qui respectent l'intervalle.
 
Sinon, il me semble que si on divise T par deux jusqu'à plus soif, on atteint i (genre division euclidienne pour décomposer en base n).
 
L'algo faut l'écrire...
 
EDIT : c'est bien i qui est cherché. :)


Message édité par Carbon_14 le 22-09-2003 à 19:23:49
n°520597
Angel_Doog​las
Le dernier des humains
Posté le 22-09-2003 à 19:41:49  profilanswer
 

T est un integer?


---------------
You have the right to remain silent. You are warned that anything you say can will be taken down used as evidence against you///Il n'y a pas de théorie de l'évolution. Juste une liste d'espèces que Chuck Norris autorise à survivre.
n°520614
chrisbk
-
Posté le 22-09-2003 à 19:56:54  profilanswer
 

Angel_Dooglas a écrit :

T est un integer?


:non:
 
t'es un integriste ? [:aloy]
 
 
 
vivi, je sais, ->[]

n°520616
Taz
bisounours-codeur
Posté le 22-09-2003 à 19:57:53  profilanswer
 

Angel_Dooglas a écrit :

T est un integer?

God is real until declared as integer.

n°520798
LeGreg
Posté le 22-09-2003 à 23:01:03  profilanswer
 

version naive:

Code :
  1. if (T <= 1)
  2.    return "impossible"
  3. for (i = 0; (1 << i) < T; i++);


 
Je te laisse chercher la version optimisée
Il y en a une qui fait intervenir une table (pas trop grande la table sinon cache miss -> perf déplorable..) mais qui n'est pas valable dans tous les cas.
la deuxieme fait intervenir de l'assembleur (BSR) mais c'est pas la bonne sous catégorie :) et c'est spécifique à une plateforme.
 
A+
LeGreg

mood
Publicité
Posté le 22-09-2003 à 23:01:03  profilanswer
 

n°520885
belgique
Posté le 23-09-2003 à 00:31:43  profilanswer
 

ceil(log2(T)) non  :??:


Message édité par belgique le 23-09-2003 à 00:32:48
n°520898
Evadream -​jbd-
Posté le 23-09-2003 à 00:58:06  profilanswer
 

+1, comme Belgique

n°520937
charly007
Posté le 23-09-2003 à 03:03:16  profilanswer
 

A vérifier :
 
2^(i-1) < T <= 2^i
 
<=> ln (2^(i-1)) < ln(T) <= ln(2^i)
 
<=> (i-1) ln 2 < ln(T) <= i ln 2
 
<=> i-1 < ln(T) / ln 2 <= i
 
<=> i-1 < ln(T) / ln 2    et    i >= ln (T) / ln 2
 
<=> i < ln(T) / ln 2 + 1    et    i >= ln (T) / ln 2
 
 
<=> i < log(2) (T) + 1    et    i >= log(2) (T)      (log(2) = log en base 2)
 
 
Edit : c'est peut-etre ce que signifie ceil(log2(T)). :??:
 
Edit 2 : en effet, c'est bien ça. :D


Message édité par charly007 le 23-09-2003 à 03:12:38
n°520938
LeGreg
Posté le 23-09-2003 à 03:12:44  profilanswer
 

On a bien compris que c'était un log2 qu'il voulait faire
mais vous ne répondez pas à la question..
 
LeGreg

n°521109
charly007
Posté le 23-09-2003 à 11:31:17  profilanswer
 

log2 (T) = ln(T) / ln(2)
 
en C, ln se traduit par la fonction log, donc il faut faire
 
log(T) / log(2) ou log2(T)
 
Comme Belgique en fait. :D


Message édité par charly007 le 23-09-2003 à 11:50:08
n°521121
belgique
Posté le 23-09-2003 à 11:43:42  profilanswer
 

legreg a écrit :

On a bien compris que c'était un log2 qu'il voulait faire
mais vous ne répondez pas à la question..
 
LeGreg


Tu peux mieux m'expliquer, je ne comprends pas trop ce qui est demandé.

n°521128
LeGreg
Posté le 23-09-2003 à 11:49:32  profilanswer
 

Belgique a écrit :


Tu peux mieux m'expliquer, je ne comprends pas trop ce qui est demandé.


 
La question d'apres le titre :
comment faire pour trouver i tel que 2^(i-1)<T<=2^i ?
ce qui correspond bien à un log entier mais dans le cas d'une puissance de deux, c'est probablement overkill de passer par la double conversion int->double->int et la fonction log.  
d'ou la formulation naive avec une simple boucle et décalage et la forme avec l'assembleur inline.
 
A+
LeGreg

n°521185
belgique
Posté le 23-09-2003 à 12:48:11  profilanswer
 

Ok, merci, je me disais bien  :D

n°521328
kfman
Credo quia absurdum
Posté le 23-09-2003 à 14:11:54  profilanswer
 

Le greg:
 
Dans un but pédagogique pourrait-tu dérouler le fonctionnement de ton algo ?
 
D'avance merci.

n°524312
theorie du​ chaos
morte et enterrée
Posté le 26-09-2003 à 21:02:41  profilanswer
 

merci merci :)
 
apparemment tout est dans la librairie maths...
log, puissances :D
 
mais comme dans les sources qu on me fournit on se sert de decalages... j ai fait une boucle for :jap:

n°524313
theorie du​ chaos
morte et enterrée
Posté le 26-09-2003 à 21:03:49  profilanswer
 

I=1;
while ((1<<I) < size)
 I++;
 
 
ca ira tres bien :D

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  calcul de i tel que 2^(i-1)<T<=2^i

 

Sujets relatifs
calcul erroné en perl[Java ou Delphi] calcul de débit ADSL
calcul de fonctions mathématiques[BINAIRE] Code Complémenté & calcul binaire
Garder la main durant un calcul lourd[Math] calcul du cercle circonscrit a un triangle en 3D
calcul matricielCalcul TVA avec PHP [NEED HELP]
C'est loin les maths... Calcul de distance en 2Drécupérer le dernier calcul en php
Plus de sujets relatifs à : calcul de i tel que 2^(i-1)<T<=2^i


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR