Binary splitting method (math sup++)
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Binary splitting method (math sup++)



  1. #1
    invitedebe236f

    Binary splitting method (math sup++)


    ------

    http://numbers.computation.free.fr/C...splitting.html

    je comprend pas comment il calcule une factorielle rapidement
    si quelqu un pouvais m expliquer avec un exemple fact(10) par exemple

    -----

  2. #2
    Evil.Saien

    Re : Binary splitting method (math sup++)

    tu devrais deja regarder une autre page parce que celle-ci déconne un peu (enfin chez moi...)
    Du coup les formules sont incomprehensibles...
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  3. #3
    inviteea0d596d

    Re : Binary splitting method (math sup++)

    les formules sont "presque" bonnes.
    En fait il faut considérer la partie entière de (a+b)/2 et non pas (a+b)/2

    La formule marche, je l'ai testée sous Visual Basic.

    voici l'algorithme pour calculer P(a,b) :

    si a+1=b alors renvoyer b
    sinon
    m=E[(a+b) /2]
    renvoyer P(a,m)*P(m,b)



    ensuite pour calculer n! il suffit d'appeler P(0,n)

  4. #4
    invitedebe236f

    Re : Binary splitting method (math sup++)

    ok merci
    mais je vois pas ou est l avantage

  5. A voir en vidéo sur Futura
  6. #5
    inviteea0d596d

    Re : Binary splitting method (math sup++)

    bah la démonstration qu'ils font prouve que la méthode classique se fait en

    alors que la méthode proposée demande seulement opérations

    si tu étudies ces 2 fonctions tu veras que la première croit beaucoup plus vite que la seconde.

  7. #6
    Evil.Saien

    Re : Binary splitting method (math sup++)

    Citation Envoyé par Azrem
    bah la démonstration qu'ils font prouve que la méthode classique se fait en

    alors que la méthode proposée demande seulement opérations

    si tu étudies ces 2 fonctions tu veras que la première croit beaucoup plus vite que la seconde.
    Salut,
    la méthode proposée est récursive, non ?
    En générale c'est moins rapide...
    Le plus rapide des algorithmes pour calculer le factoriel est le suivant (je sais, c'est pas beau mais très éfficace) :
    switch n:
    case 0:
    return 1;
    break;
    case 1:
    return 1;
    break;
    case 2:
    return 2;
    break;
    case 3:
    return 6;
    break;
    case 4:
    return 12;
    break;
    etc etc... jusqu'a la valeur désirée... Avec cet algo, aucun problème de vitesse
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  8. #7
    invitedebe236f

    Re : Binary splitting method (math sup++)

    j ai oublier de preciser peut etre que c est pour calculer dans le genre de fact(354455) avec tous ces chiffres
    si j ai bien comprit il prend par 2 les chiffres et les multiplie il lui en reste la moitie
    il recommence et quand les resultat sont trop gros il passe a la FFT pour multiplie

  9. #8
    inviteea0d596d

    Re : Binary splitting method (math sup++)



    Citation Envoyé par Evil.Saien
    Salut,
    la méthode proposée est récursive, non ?
    En générale c'est moins rapide...
    Le plus rapide des algorithmes pour calculer le factoriel est le suivant (je sais, c'est pas beau mais très éfficace) :
    switch n:
    case 0:
    return 1;
    break;
    case 1:
    return 1;
    break;
    case 2:
    return 2;
    break;
    case 3:
    return 6;
    break;
    case 4:
    return 12;
    break;
    etc etc... jusqu'a la valeur désirée... Avec cet algo, aucun problème de vitesse

Discussions similaires

  1. Optimization conjugate gradient method
    Par invited9d71a3e dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 18/04/2006, 18h51
  2. Splitting de terme. (Tanabe Sugano)
    Par Fajan dans le forum Chimie
    Réponses: 6
    Dernier message: 23/04/2005, 15h07
  3. Gold Chloride method
    Par invite31123075 dans le forum Chimie
    Réponses: 6
    Dernier message: 14/12/2004, 07h31
  4. removal method
    Par invite8e50baf6 dans le forum Environnement, développement durable et écologie
    Réponses: 2
    Dernier message: 09/07/2004, 13h07