IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Besoin d'une formule de math


Sujet :

Mathématiques

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut Besoin d'une formule de math
    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.

    Déplacé depuis le forum Assembleur par Alcatîz

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Salut,

    Ouaip, y'a:

    avec n = nombre de réductions

    PS: les parenthèses sont là pour la forme, normalement la puissance (^) est prioritaire...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Merci

    Mais pourquoi l'exposant ?

    ce ne serait pas plutôt

    C = C - (C x (0.995 x n)) :

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par AsmCode
    C = C - (C x (0.995 x n))
    Y'aurait pas une 'tite incohérence dans ta formule là???

    Si tu veux enlever 0.5% à ta valeur, ça consiste à n'en garder que 99.5%
    Au tour d'après, tu gardes 99.5% de ce qu'il reste, soit 99.5% de 99.5% de la valeur initiale, soit 99.5% x 99.5% = (99.5%)^2
    Et ainsi de suite.
    Au rang n, ça donne (99.5%)^n de la valeur initiale.

    Tu trouveras ce résultat facilement si tu factorises tes expressions dans ton premier post (vu que:
    25000 - ((25000 X 0.5)/100) = Z
    25000 x (1- 0.5/100) = Z
    soit 25000 x 0.995 = Z
    )
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 27
    Points : 29
    Points
    29
    Par défaut
    Il y aurait aussi moyen d'y aller avec la récursion si tu ne sais pas le nombre de fois exacte que tu veux réduire.

    Tu garde 99.5% du nombre que tu passe en paramètre à la même fonction.

    En pseudo code, ça donne ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function MaFonctionRecur (Nombre : réel) : Réel
        MaFonctionRecur = 0.995 * Nombre
        Call MaFonctionecur (MaFonctionRecur)
    Fin Function
    Bien sûr, tu rajoutes une condition sinon, il boucle sans fin

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Ok

    Mais 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.

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Tu as déjà posté un sujet pour ça, merci de ne pas te disperser.

    http://www.developpez.net/forums/viewtopic.php?t=376677

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut J'ai besoin d'une autre formule de math heheh.
    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.

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    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 ?

  10. #10
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par AsmCode
    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 ?
    Tu factorises (1024-x): (1024-x) * (1+1 / 8 ) = 1022
    soit: (1024-x) * ( 9 / 8 ) = 1022
    soit: 1024-x = 1022 * 8 / 9
    soit: x= 1024 - (1022 * 8 / 9 ) = 115.55555555555555555555...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Bonjour

    Je recherches une autre formule.

    Je croyais que c'était: n! / (k! (n-k)!)

    Mais non, alors si quelqu'un peut m'aider à trouver une formule plus simple aussi car n! est très lourd à calculer si j'ai un nombre d'environ 1 millions.

    Je voudrais calculer le nombre de possibilités qu'une position peut occuper selon un groupe. Mais sans inversion.

    Par exemple, faisons cela avec des 0 et des 1.

    Si j'ai 5 bits
    combien de positions puis-je avoir avec 2 bits ?

    Voici la solution manuelle de ce que je veux dire:

    11000
    10100
    10010
    10001
    01100
    01010
    01001
    00110
    00101
    00011

    10 positions.

    avec 4 bits et un groupe de 2 bits:
    1100
    1010
    1001
    0110
    0101
    0011

    6 positions

    Merci

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    309
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 309
    Points : 61
    Points
    61
    Par défaut
    Oops

    Non ok c'est moi qui s'est trompé

  13. #13
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par AsmCode
    Non ok c'est moi qui s'est trompé
    hum hum, C'est moi qui me suis trompé serai mieux, je pense...
    Sinon pour ton problème
    Tu dois chercher le nombre de Combinaisons
    appelé Cnk par les anciens (dont je fais parti) et k parmi n pour les petits jeunes...
    noté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        k
      C
        n
    ou 
    (n)
    (k)
    Et la formule C'est C(n,k) = k!/(n!*(n-k)!)
    Tu y étais presque...
    Dans ton cas k le nombre de bits à placer, et n le nombre de bits total...
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Même chose, tu choisis 2 positions parmi 5, donc C(5, 2)

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 417
    Points : 372
    Points
    372
    Par défaut
    Citation Envoyé par Rafy
    Et la formule C'est C(n,k) = k!/(n!*(n-k)!)
    Tu y étais presque...
    J'ai bien peur que la formule soit plutôt C(n,k) = n!/(k!*(n-k)!).

  16. #16
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C(n, 0) = C(n, n) = 1, donc c'est Topos qui gagne

  17. #17
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Oui enfin bon, ça reste la pire formule sur C(n;k) du point de vue calculs (d'à peu près tous les points de vue d'ailleurs).

    C(n,k) = n(n-1)...(n-k+1)/k!, c'est déjà mieux.

  18. #18
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Je suis d'accord... Allez y (mais pas trop)
    Il est vrai sinon que je ne vais avoir que des fractions, avec un maximum en 1...
    Un souvenir trouble, faut que je relise mes cours
    Première grosse démo en construction :
    http://bitbucket.org/rafy/exo2/

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 73
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 417
    Points : 372
    Points
    372
    Par défaut
    Question: que calcule la fonction suivante (on suppose que 0 <= k <= n) ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    int f (int n, int k)
    {
      int *t = (int *)malloc((k+1)*sizeof(int)); 
      int i, j; 
     
      for (j = 0; j <= k; j++) t[j] = 1; 
     
      for (i = 0; i < n-k; i++)
        for(j = 0; j < k; j++)
          t[j+1] += t[j]; 
     
      i = t[k];
      free(t); 
      return i; 
    }
    Seules les réponses duement justifiées seront prises en compte.

  20. #20
    Membre actif
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    277
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 277
    Points : 230
    Points
    230
    Par défaut
    Oui, c'est mieux

    On pouvait le faire récursivement aussi...

Discussions similaires

  1. [XL-2010] besoin d'une formule
    Par francinemasse dans le forum Excel
    Réponses: 8
    Dernier message: 05/03/2015, 11h56
  2. Besoin d'une formule de recherche
    Par pulls dans le forum Excel
    Réponses: 10
    Dernier message: 15/10/2010, 15h11
  3. Besoin d'une formule mathématique pour le million
    Par isa150183 dans le forum Mathématiques
    Réponses: 9
    Dernier message: 29/06/2010, 08h26
  4. Maths : Réecriture d'une formule
    Par micatmidog dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 14/08/2006, 10h03
  5. [Math]Valider une formule mathematique en java
    Par RolandB dans le forum API standards et tierces
    Réponses: 7
    Dernier message: 22/04/2005, 09h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo