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

  FORUM HardWare.fr
  Programmation
  C++

  Besoin d'une formule de math.

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

Besoin d'une formule de math.

n°1159470
NullDragon
Posté le 25-07-2005 à 20:14:25  profilanswer
 

Bonjour, j'essaie de trouver une formule de math afin d'évaluer un rendement.
 
Admettons que j'ai un nombre: 25000
 
et que je veuille réduire celui-ci de 0.5% à chaque fois que je le réduit.
 
Est-ce qu'il y aurait une formule toute simple au lieu de faire quelque chose du genre:
 
25000 - ((25000 X 0.5)/100) = Z
 
Z - ((Z X 0.5)/100) = A
 
A - ((B X 0.5)/100) = C
 
et ainsi de suite dépendamment du nombre de fois que je veux réduire ce nombre.
 
Merci.  :hello:

mood
Publicité
Posté le 25-07-2005 à 20:14:25  profilanswer
 

n°1159501
Exo 7
Posté le 25-07-2005 à 20:51:11  profilanswer
 

Ca ressemble à une suite géométrique
 

Code :
  1. soit u la suite définie par
  2. u[n+1] = 0.95 u[n]
  3. u[0] = 25000
  4. u[n+1] / u[n] = 0.95 = q
  5. u est bien une suite géomètrique
  6. donc tu peux exprimer u[n] de cette façon :
  7. u[n] = q^n u[0]
  8. soit u[n] = 0.95^n * 25000


 
Ca fait (assez) longtemps mais c'est ce que je me souviens.

n°1159507
NullDragon
Posté le 25-07-2005 à 20:55:01  profilanswer
 

Ah je l'ai trouvé :D
 
T = T - (T x (N x P))
 
Ou
 
T = total (25 000)
 
N = Nombre de fois qu'on le réduit
 
P = Pourcentage de réduction
 
Merci.  :jap:

n°1159508
Exo 7
Posté le 25-07-2005 à 20:56:36  profilanswer
 

Heu
T = T - kekchose avec kekchose != 0 ça me semble bancal ^^

n°1159510
NullDragon
Posté le 25-07-2005 à 21:00:22  profilanswer
 

Uh [:autobot]
 
Je n'ai pas compris ta remarque.  :hello:

n°1159548
Exo 7
Posté le 25-07-2005 à 21:48:59  profilanswer
 

Elle te semble correcte ta formule ?
Parcequ'elle ne l'est que lorsque N,P ou T = 0

n°1159743
Taz
bisounours-codeur
Posté le 26-07-2005 à 01:55:25  profilanswer
 

Exo 7 a écrit :

Heu
T = T - kekchose avec kekchose != 0 ça me semble bancal ^^


ça dépend de comment tu surcharges operator==

n°1160295
sankukai8
Posté le 26-07-2005 à 14:36:41  profilanswer
 

ta formule me parait pour le moins etrange:
en effet si P=5% et que tu reduis T 25 fois de suite de ce pourcentage ta formule donne comme resultat:
T = T - (T x (N x P)) = T-(T*25*5/100)=T-1.25T= -0.25T!!!!!! bref n'importe quoi car si tu augmentes le nombre de reduction ton nombre tend vers -l'infini, alors qu'il devrait tendre vers 0 !!!!  
la veritable formule est :
T= ( ((100-P)/100)^N) * T avec P le pourcentage et N le nombre de fois ou il est appliqué ce qui est l'algorithme proposé par exo7 sous la forme d'une suite.
 
rmq pour exo7: cette formule n'est pas une egalité mathematique mais une assignation informatique. Cela signifie que tu remets la valeur apres la reduction dans la variable T.


Message édité par sankukai8 le 26-07-2005 à 14:37:54
n°1160585
NullDragon
Posté le 26-07-2005 à 17:55:56  profilanswer
 

Ok  :jap:  
 
Merci.  :)

n°1160606
sircam
I Like Trains
Posté le 26-07-2005 à 18:08:06  profilanswer
 

Taz a écrit :

ça dépend de comment tu surcharges operator==


[:itm]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
mood
Publicité
Posté le 26-07-2005 à 18:08:06  profilanswer
 

n°1160704
NullDragon
Posté le 26-07-2005 à 19:55:35  profilanswer
 

J'aurais besoin d'une autre formule de math, celle-ci, par contre, je n'ai aucune idée de son concept alors en pseudo-code ça doit faire ceci:
 
Supposons que j'ai la valeur numérique 16706 qui est en fait l'équivalent de 'AB' en ascii.
 
Prenon un exemple plus long, admettons 'ABCDEF' qui est égal à:
 
010000010100001001000011010001000100010101000110
 
qui vaut: 71752852194630
 
comment, au moment de la lecture d'un octet à la fois, ajouter leur valeur pour "construire" une notation simplifié comme 2^x + y qui serait = 71752852194630 ?
 
Puis ensuite, comment je pourrais prendre cette notation: 2^x + y pour refaire l'inverse ?
 
C'est-à-dire avoir quelque chose comme:
 
Z = portion de 2^x + y
 
calculer l'octet O de Z
 
retenir O
 
prendre une autre portion de 2^x + y (s'il en reste)
 
calculer l'octet O + 1
 
Puis à la fin de la boucle (quand il n'y a plus de portion) aditionner ou mettre ensemble tout les octets O pour que cela donne bien 'ABCDEF'
 
Merci.  :jap:

n°1160723
sircam
I Like Trains
Posté le 26-07-2005 à 20:06:56  profilanswer
 

Tu joues à quoi, là ? :heink:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1160724
NullDragon
Posté le 26-07-2005 à 20:07:54  profilanswer
 

Ben j'expérimente des trucs, pourquoi ?


Message édité par NullDragon le 26-07-2005 à 20:08:38
n°1160730
sircam
I Like Trains
Posté le 26-07-2005 à 20:17:42  profilanswer
 

Ce que tu racontes est un peu une soupe.
 

Citation :

la valeur numérique 16706 qui est en fait l'équivalent de 'AB' en ascii.


Admettons, mais si c'est une supposition, c'est plutôt incongru.
 

Citation :

Prenon un exemple plus long, admettons 'ABCDEF' qui est égal à:
 
010000010100001001000011010001000100010101000110


J'aimais déjà pas le premier exemple...
 

Citation :

010000010100001001000011010001000100010101000110
 
qui vaut: 71752852194630
 
comment, au moment de la lecture d'un octet à la fois, ajouter leur valeur pour "construire" une notation simplifié comme 2^x + y qui serait = 71752852194630 ?


Changement de base arbitraire suivi de la partie 'math', hmmm... La lecture d'un octet à la fois alors que tu es passé de binaire à décimal ?
 
Cpa hyper clair. :heink:


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1160744
NullDragon
Posté le 26-07-2005 à 20:33:07  profilanswer
 

AB = 16706 en valeur numérique je t'assures j'ai fait le calcul.
 
Ainsi que 'ABCDEF' = 010000010100001001000011010001000100010101000110
 
donc = 71752852194630
 
Si tu ne me crois pas, fait le calcul :)

n°1160757
sircam
I Like Trains
Posté le 26-07-2005 à 20:50:43  profilanswer
 

NullDragon a écrit :

AB = 16706 en valeur numérique je t'assures j'ai fait le calcul.
 
Ainsi que 'ABCDEF' = 010000010100001001000011010001000100010101000110
 
donc = 71752852194630
 
Si tu ne me crois pas, fait le calcul :)


Coco, j'ai fait le calcul mentalement et je vois que c'est ok, mais je pige rien aux restes de tes élucubrations.
 
Dire que "AB = 16706", c'est un raccourci qui n'a pas des masses de sens.
[:djswad]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1160759
NullDragon
Posté le 26-07-2005 à 20:53:04  profilanswer
 

Ok :)
 
Mais qu'est-ce que tu ne comprends pas dans mon explication plus haut ?  :pt1cable:

n°1160760
sircam
I Like Trains
Posté le 26-07-2005 à 20:53:46  profilanswer
 

Rien.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1160765
NullDragon
Posté le 26-07-2005 à 21:10:31  profilanswer
 

Euh ok,
 
dabord on sait que AB = 16706 vrai ?
 
alors si je décide que je veux écrire dans un fichier la valeur binaire 16706 il va m'écrire AB. Jusque là, ça va.
 
Mais supposons que je désire dabord changer mon nombre 16706 dans un format 2^x + y
 
donc on aurait: (2^14) + 322 = 16706
 
Mais je voudrais seulement travailler avec une notation courte 2^x + y au lieu du nombre, car dans le cas ou j'aurais un nombre de 5484411 .....e-308 1) c'est plus court à écrire sous la forme de 2^x + y et 2) c'est moins lourd en mémoire.
 
Maintenant je voudrais prendre une partie(décomposer) ma notation pour prendre une petite valeur pour le convertir graduellement à l'intérieur d'une boucle while pour pouvoir ravoir ma valeur 16706 de départ.

n°1160771
0x90
Posté le 26-07-2005 à 21:23:26  profilanswer
 

ca sent vaguement les exos tout ca ... ou alors je suis parano, ou alors je n'ai pas saisi l'ironie ambiante du topic :??:

n°1160810
NullDragon
Posté le 26-07-2005 à 22:16:53  profilanswer
 

Encore une question :)
 
Plus simple cette fois.
 
Comment trouver l'inverse d'un exposant ?
 
Par exemple 2^8 = 256
 
mais si on a un nombre x, admettons x = 135
 
x = 2^? reste y(si ce n'est pas juste)  :pt1cable:

n°1160839
Exo 7
Posté le 26-07-2005 à 22:42:01  profilanswer
 

c'est la définition du logarithme...

n°1161137
sankukai8
Posté le 27-07-2005 à 10:16:30  profilanswer
 

comprends pas tout a ce que tu veux faire mais la formule est simple en effet.
 
n est le nombre en notation decimale que tu veux transformer en 2^x+y
alors:
 x=partie entiere (ln(n)/ln(2))  
car d'apres la forme que tu souhaites il parait evident que tu desires des entiers pour x et y.
pour y:
 y=n-2^x
voilou
 
pour la reciproque, si tu as x et y, je vois pas trop la difficultée pour retrouver n!
 

n°1161919
NullDragon
Posté le 27-07-2005 à 17:03:30  profilanswer
 

Euh..je n'ai pas très bien compris ton explication.  :pt1cable:  
 
Que veux dire (ln(n)/ln(2)) ?

n°1161937
Taz
bisounours-codeur
Posté le 27-07-2005 à 17:12:04  profilanswer
 

...

n°1161944
NullDragon
Posté le 27-07-2005 à 17:16:15  profilanswer
 

Je cherches une autre formule de math..  :whistle:  
 
Je voudrais pouvoir calculer le nombre minimal d'octets à enlever X sur un nombre d'octets N. Car une fois X octets enlevé, j'ajoute toujours à ce qui reste de N un nombre de bits égal à son nombre d'octets qui reste. Donc par rapport à ce que je rajoute, je voudrais savoir le minimum que je dois enlever au départ pour ne pas en rajouter plus que ce que j'en ait enlevé.
 
Par exemple:
N: 1024 octets
X: j'enlève 24 octets
R: Reste 1000 octets et j'ajoute 1000 bits donc 1000/8
J: j'ajoute 1000/8 octets donc 125 octets.  
 
Ce n'est pas bon car j'en ait enlevé 24 et j'en ait rajouté 125.
 
Mais si j'en enlève 128 c'est correct car il reste 896, 896/8 = 112 donc là je suis gagnant.
 
je cherches une formule pour calculer le minimum pour ne pas avoir à "tatonner" à la main. :D

n°1161977
sircam
I Like Trains
Posté le 27-07-2005 à 17:24:26  profilanswer
 

Bon...
 
- Aucun rapport avec C++;
- Descriptions alambiquées;
- Niveau de math insuffisant par rapport aux réponses reçues;
 
Faudrait peut-être penser à arrêter les frais. :o


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1161985
NullDragon
Posté le 27-07-2005 à 17:28:10  profilanswer
 

sircam a écrit :

Bon...
 
- Aucun rapport avec C++;
- Descriptions alambiquées;
- Niveau de math insuffisant par rapport aux réponses reçues;
 
Faudrait peut-être penser à arrêter les frais. :o


 
Qui te dit que je ne cherches pas à faire ça en C++  :??:  
 
Et je l'ai décris avec un exemple, on ne peut avoir mieux comme explications.
 
Et pour mon niveau de math, c'est pour cela que je poses des questions.
 
Merci.

n°1161994
Taz
bisounours-codeur
Posté le 27-07-2005 à 17:32:06  profilanswer
 

j'ai toujours rien compris sur le but à atteindre ...

n°1162005
sircam
I Like Trains
Posté le 27-07-2005 à 17:40:40  profilanswer
 

NullDragon a écrit :

Qui te dit que je ne cherches pas à faire ça en C++  :??:


Les intentions importent peu. Pour l'instant, tu ne fais que poser des questions de math sans rapport avec C++.
 

NullDragon a écrit :

Et je l'ai décris avec un exemple, on ne peut avoir mieux comme explications.


Heu... Un exemple plus clair ? [:autobot]
 

NullDragon a écrit :

Et pour mon niveau de math, c'est pour cela que je poses des questions.


Et tu arrives systématiquement à la conclusion que tu ne comprends pas... Peut-être t'attaques-tu à des problèmes trop difficiles ?
 
 
=> Je ne suis manifestement pas le seul à ne pas bien saisir ce que tu veux.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1162020
sankukai8
Posté le 27-07-2005 à 17:55:21  profilanswer
 

si tu comprends pas la notation ln il faut commencer par aller a l'ecole mon petit ami
d'autant plus qu'au niveau de ton expression, sans vouloir etre rabat joie ou redire la meme chose que tout le monde ici present, JE NE COMPREND RIEN A CE QUE TU DIS!!!!!!
alors pour conclure et au risque de me repeter retourne a l'ecole


Message édité par sankukai8 le 27-07-2005 à 17:55:56
n°1162043
NullDragon
Posté le 27-07-2005 à 18:13:57  profilanswer
 

C'est bon j'ai trouvé la formule moi-même.
 
((N - x) + ((N - x)/8) = N - 2
 
si N = 1024 ..
 
(1024 - x) + ((1024 - x)/8) = 1022
 
Mais je dois encore isoler le x, mais mes notions de math sont loin. Quelqu'un peut-il m'aider ?  :hello:  
 

n°1162134
Taz
bisounours-codeur
Posté le 27-07-2005 à 19:27:52  profilanswer
 

laisse tomber, on comprends rien à ce que tu veux faire ...
 
si tu sais pas résoudre une équation du premier degré ...
 
c'est quand tu veux pour expliquer de quoi tu as besoin, sinon aurevoir

n°1162137
NullDragon
Posté le 27-07-2005 à 19:29:19  profilanswer
 

Ben tout ce que je veux c'est comprendre comment isoler x dans cette équation, c'est tout. Oubliez le reste.

n°1162149
Taz
bisounours-codeur
Posté le 27-07-2005 à 19:44:26  profilanswer
 

mais elle correspond à quelle réalité cette équation ? On oublie pas le  reste. T'a pas le niveau 4eme en maths, on aimerait savoir c'est quoi le problème initial.

n°1162233
NullDragon
Posté le 27-07-2005 à 21:30:16  profilanswer
 

Je l'ai expliqué plus haut, je veux savoir le nombre d'octets minimal à enlever sur N octets.

n°1162236
sircam
I Like Trains
Posté le 27-07-2005 à 21:41:37  profilanswer
 

- Je veux savoir comment faire X.
- Comprends pas. Quel est le but, le problème ?
- Je veux savoir comment faire X.
- A quoi ça correspond ?
- Je l'ai expliqué, je vaux savoir comment faire X.
 
Typique du manque de compréhension de la langue française.  
 
LE MONSIEUR TE DEMANDE LE BUT, L4APPLICATION PRATIQUE, CONCRETE, LA CAUSE, LA RAISON. Pas ce que tu veux faire.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°1162309
CosmoSys
Posté le 27-07-2005 à 22:54:04  profilanswer
 

Si je comprends bien ce qu'il veut faire:

Code :
  1. 25000 - ((25000 X 0.5)/100) = Z
  2. Z - ((Z X 0.5)/100) = A
  3. A - ((B X 0.5)/100) = C


Si on pose X, le resultat, Z le nombre de départ et N le pourcentage

Code :
  1. X = Z - (Z*N)/100
  2. X = Z*(100-N)/100


si on continu:

Code :
  1. X2 = X*(100-N)/100
  2. X2 = Z*((100-N)/100)^2


Si n est le nombre d'itération:

Code :
  1. Xn = Z*((100-N)/100)^n


CQFD :lol:

n°1162310
sankukai8
Posté le 27-07-2005 à 22:55:08  profilanswer
 

tes notions de maths ne sont pas loin, elles sont inexistantes.
la voila ta solution:

Citation :

((N - x) + ((N - x)/8) = N - 2


donne 9/8 * (N-x)=N-2
donc N-x= 8/9 (N-2)
donc x= N-8/9(N-2)=1/9N+16/9=1/9(N+16)
 pour rappel, c'est du vrai programme de 4eme, et je sais de quoi je parle. je vois pas comment tu peux programmer sans maitriser un tant soit peu le calcul de base.


Message édité par sankukai8 le 27-07-2005 à 22:56:15
n°1162524
NullDragon
Posté le 28-07-2005 à 08:08:20  profilanswer
 

Hmmm, je cherches une façon de mettre cette boucle en une seule et simple formule. Pour ne pas avoir à faire de boucle.
 
C'est possible ?
 
 for (i=1;i<=n;i++)  
 {
  s+= (n-i+1)*i;
 }

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

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

  Besoin d'une formule de math.

 

Sujets relatifs
[LotusScript] - Formule de sélection de vuevbs, un debutant a besoin d'aide
Accès sécurisé > Besoin d'avisBesoin d'aide (pour rendre ma page potable sur firefox)
[Débutant] Besoin d'une explication en HTMLScript CGI > Besoin d'aide
Besoin d'aide sur l'utilite d'une equation logiquebesoin d'aide pour faire un exe en liaison avec Flash (C++Builder)
Besoin d'une formule de mathBesoin d'une formule de math.
Plus de sujets relatifs à : Besoin d'une formule de math.


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