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

C Discussion :

Créer des fonctions dynamiques


Sujet :

C

  1. #41
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par souviron34
    d'où sors tu ces valeurs limites ?
    En fait, comme je l'ai déjà dit, c'est un problème du site de l'université de Valladolid (ACM Problem), et l'excerice est disponible ici.
    Je n'ai pas mis le lien plutôt, car on m'aurait accuser de vouloir le refiler à quelqu'un et récupérer la solution ... donc je ne l'ai pas fait, et pour dire la vérité, j'avais pas l'intention de mettre le lien.

    Sinon fearyourself, je ne comprends pas ce que tu veux faire par "interpolation linéaire", c'est un terme que je n'ai jamais encore rencontré, ou alors étudié.
    Et puis ça serait quel genre de factorisation ?

  2. #42
    Membre actif
    Inscrit en
    Décembre 2003
    Messages
    272
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 272
    Points : 284
    Points
    284
    Par défaut
    Tu nous a caché une information inportante sur les paliers :
    the only non*decreasing sequence of positive integers with the property that it contains exactly f(k) occurrences of k for each k
    Au départ on a :
    et donc il y a deux "2", ce qui permet d'étendre la table :
    Donc il y a deux "3" et trois "4". Et hop nouvellle étape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1 2 3 4 5 6 7 8 9
    1 2 2 3 3 4 4 4 5
    La table des paliers est donc facile à construire.

    Il est sûrement plus facile de trouver une formule (ici par récurrence) à partir de la propriété que de deviner qu'il y a une propriété simple derrière la formule...

  3. #43
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par Ulmo
    Tu nous a caché une information inportante sur les paliers :

    Au départ on a :
    et donc il y a deux "2", ce qui permet d'étendre la table :
    Donc il y a deux "3" et trois "4". Et hop nouvellle étape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1 2 3 4 5 6 7 8 9
    1 2 2 3 3 4 4 4 5
    La table des paliers est donc facile à construire.

    Il est sûrement plus facile de trouver une formule (ici par récurrence) à partir de la propriété que de deviner qu'il y a une propriété simple derrière la formule...
    En effet, de toute facon ma solution ne fonctionnerait pas directement puisqu'il y a une limite à la taille du code source à mon souvenir...

    Il faudrait donc créer la table pendant l'exécution, donc trouver un moyen rapide pour calculer g(n). Clairement, il existe une solution itérative pour créer la table des paliers.

    Jc

  4. #44
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    fearyourself a écrit:
    Je me suis dit qu'on pouvait créer un tableau contenant ces valeurs. Ensuite, si on cherche une valeur, il nous reste à trouver la bonne case et récupérer la valeur.
    Oui, c'est ce que j'ai expliqué un peu plus haut !
    J'ai modifié mon premier petit programme afin d'effectuer une recherche par dichotomie. Voici le résultat:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    int main(int argc, char* argv[])
    {
            unsigned int *palier;
            unsigned int max,i,v,vmin,vmax,delta;
            time_t t1,t2;
     
            palier= (unsigned int *) malloc(6000000*sizeof(int));
     
            palier[0] = 0;
            palier[1] = 1;
     
     
            t1 = time(0);
     
            for (i=2,max=1;i<1000000000L;i++)
            {
                    for (vmin=1,vmax=max,delta=(max-1);delta>=1;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (palier[vmin+delta]<max)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
     
                    v = i - vmax;
     
                    for (vmin=1,vmax=max,delta=(max-1);delta>=1;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (palier[vmin+delta]<v)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
     
                    if (vmax+1>max)
                    {
                            palier[vmax+1] = i;
                    }
                    else palier[max] = i;
                    max = vmax+1;
            }
            t2 = time(0)-t1;
     
            free(palier);
     
            printf("%u - %d sec\n",max, t2);
            getchar();
            return 0;
    Pour 1000 000 000, on obtient 438744 comme valeur de palier (qui en passant ne prend qu'un seul l).

    Si quelqu'un pouvait le tester sur une machine rapide et me donner le temps d'exécution, ce serait sympa ...

  5. #45
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 603
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 603
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Ulmo
    ]Donc il y a deux "3" et trois "4". Et hop nouvellle étape :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    1 2 3 4 5 6 7 8 9
    1 2 2 3 3 4 4 4 5
    La table des paliers est donc facile à construire.

    Il est sûrement plus facile de trouver une formule (ici par récurrence) à partir de la propriété que de deviner qu'il y a une propriété simple derrière la formule...
    C'est pas 3 3 et 4 4 ou j'ai mal compris ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  6. #46
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par josse95
    Pour 1000 000 000, on obtient 438744 comme valeur de palier (qui en passant ne prend qu'un seul l).

    Si quelqu'un pouvait le tester sur une machine rapide et me donner le temps d'exécution, ce serait sympa ...
    J'obtiens 8s pour 100 millions donc c'est pas mal du tout comme solution. Je n'ai pas regardé les solutions par contre je fais confiance.

    Par contre, est-ce possible de donner des nombres aléatoirement à ton programme pour voir comment il réagit ?

    Genre je veux calculer
    f(5), f(123), f(12), f(123123) ?
    Jc

  7. #47
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par souviron34
    C'est pas 3 3 et 4 4 ou j'ai mal compris ?
    Non, car f(3) = 2 donc il y aura 2 3

    Jc

  8. #48
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Le problème en raisonnant de cette manière ("2 3", "2 2" etc ...), c'est que l'on ne fait que déplacer le problème à un étage supérieur ou inférieur selon notre raisonnement.
    Je doute qu'il y est quelques choses à déduire de cela, bien que ça paraîsse logique.
    Sur le forum officiel du concours, un des utilisateurs dit qu'il a utiilsé 2 boucles for pour deviner où les valeurs de f(n) changent, mais je ne vois pas comment ...
    En attendant, j'ai l'impression que c'est mort pour la récursivité terminale, même si je suis quasiment certain qu'il y ait un moyen de l'implémenter.

  9. #49
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    fearyourself a écrit:
    est-ce possible de donner des nombres aléatoirement à ton programme pour voir comment il réagit
    Oui, il suffit de passer la borne du compteur de boucle en paramètre à une fonction:

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    #include <stdio.h>
    #include <time.h>
    #include <malloc.h>
    #include <stdlib.h>
     
    unsigned long g(unsigned int n)
    {
            unsigned int *palier;
            unsigned int max,i,v,vmin,vmax,delta;
            palier = (unsigned int *) malloc(10000000*sizeof(int));
     
            palier[0] = 0;
            palier[1] = 1;
            palier[2] = 2;
     
            for (i=2,max=1;i<=n;i++)
            {
                    for (vmin=1,vmax=max;;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (delta<=0) break;
                            if (palier[vmax-delta]<max)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
                    v = i - vmax;
                    for (vmin=1,vmax=max;;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (delta<=0) break;
                            if (palier[vmax-delta]<v)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
                    if (vmax+1>max)
                    {
                            max = vmax+1;
                    }
                    palier[max] = i;
            }
     
            free(palier);
            return max;
    }
     
    int main(int argc, char* argv[])
    {
            time_t t1;
            unsigned long v;
            char s[32];
     
            while (true)
            {
                    printf("Entrez la valeur de N (RETURN pour sortir): ");
                    fflush(stdout);
                    gets(s);        /* je ne fais pas de test sur la valeur saisie */
                    if (*s == 0) break;
     
                    t1 = time(0L);
                    v = g(atoi(s));
                    printf("G(%u)=%u - %u sec\n\n", atoi(s), v, time(0L)-t1);
            }
    }

  10. #50
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Oui mais là tu recalcules le pallier, on ne pourrait pas l'utiliser pour les prochains calculs et l'agrandir que lorsque c'est obligatoire ?

    Jc

  11. #51
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    Si c'est possible, je vais faire l'essai avec une variable statique. Mais c'est un peu tricher, non ?

  12. #52
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par josse95
    Si c'est possible, je vais faire l'essai avec une variable statique. Mais c'est un peu tricher, non ?
    C'est le but

    Jc

  13. #53
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 612
    Points : 30 612
    Points
    30 612
    Par défaut
    Pour l'algo récursif, on peut déjà le faire aller un peu plus vite en fournissant les dernières valeurs récupérées...

    Cela prendrait la forme de
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    /* @in: i valeur à calculer
            prev: valeur précédemment calculée
            res: résultat précédeent obtenu
    */
    int G(int i,int prev,int res )
    {
        /* il y a deux cas de base:
            - on est arrivé à i==1 (on renvoie 1) ou
            - on est arrivé à i==valeur précédemment calculée (on renvoie alors
              le résultat précédent)
        */
        if(prev==i)
            return res;
        if(i==1)
            return 1;
        else
        {
            int result=1+G(i-G(G(i-1,prev,res),prev,res),prev,res);
            return result;
        }
    }
     
    /* fonction principale */
    int main()
    {
        int i; /* pour le compteur */
        int result=0; /* pour le résultat */
        int restemp=0; /* pour ne sortir que  les "palliers"*/
        FILE* log2=fopen("log.txt","w");/* pour avoir les valeur dans un fichier*/
        for(i=1;i<1000;i++)
       {
            result=G(i,i-1,result);
            if(restemp<result)
            {
                restemp=result;
                printf("%d at %d\n",result,i);
                fprintf(log2,"%d at %d\n",result,i);
            }
       }
        fclose(log2);
        return 0;
    }
    Je sais, j'aurais du vérifier la bonne ouverture du fichier et la bonne écriture... mais bon, ce n'est pas le problème

    Mais le gain reste quand meme minime... j'en conviens
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  14. #54
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    124
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    Si l'on passe par les tableaux, peut-être une bonne info pour définir le tableau qui correspondra aux f(n) : f(2000000000)=673365.
    La taille du tableau représentant les valeurs de sortie serait alors de 700000 "cases".
    C'est important ou on s'en fout ?

  15. #55
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    Voici donc mon programme modifié de telle sorte qu'il mémorise les valeurs de palier lors de chaque appel de g(n).
    Si on appelle g(n-1) juste avant appeler g(n), le retour de g(n) est instantané, mais ça, on s'y attendait !

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    #include <stdio.h>
    #include <time.h>
    #include <malloc.h>
    #include <stdlib.h>
     
    unsigned int *palier;
    unsigned int maxpalier=1,maxval=1;
     
    unsigned long g(unsigned int n)
    {
            unsigned int max,i,v,vmin,vmax,delta;
     
            if (n<=1) return 1;
     
                /* cas n<=maxval. On a déjà calculé G(n) */
                /* recherche donc (par dichotomie) dans palier la valeur correspondante */
            if (maxval>=n)
            {
                    for (vmin=1,vmax=maxpalier;;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (delta<=0) break;
                            if (palier[vmax-delta]<n)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
                    return(vmax);
            }
     
            palier[0] = 0;
            palier[1] = 1;
            palier[2] = 2;
     
                /* calcule maintenant G(x) pour x=(maxval+1) jusqu'à n */
                /* les valeurs de 2 jusqu'à maxval ont déjà été calculées */
                /* et figurent dans le tableau palier */
     
            for (i=maxval+1,max=maxpalier;i<=n;i++)
            {
                        /* à ce niveau, on a G(i-1)=max */
                        /* calcule ensuite G(G(i-1))=G(max) en recherchant par */
                        /* dichotomie à quel palier correspond max */
                    for (vmin=1,vmax=max;;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (delta<=0) break;
                            if (palier[vmax-delta]<max)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
                        /* en sortie du for, on a G(G(i-1))=vmax */
                    v = i - vmax;
                        /* calcule maintenant G(i-G(G(i-1))) toujours en recherchant */
                        /* dans palier par dichotomie */
                    for (vmin=1,vmax=max;;)
                    {
                            delta = (vmax-vmin)>>1;
                            if (delta<=0) break;
                            if (palier[vmax-delta]<v)
                            {
                                    vmin += delta;
                            }
                            else
                            {
                                    vmax -= delta;
                            }
                    }
                        /* en sortie de la boucle for, on a G(i-G(G(i-1)))=vmax */
                        /* maintenant, on met à jour le tableau des paliers */
                    if (vmax+1>max)
                    {
                                /* nouveau palier */
                            max = vmax+1;
                    }
                        /* on a G(x)=max pour x=palier[max-1]+1 jusqu'à i */
                    palier[max] = i;
            }
                /* mémorise la valeur maxval la plus haute pour laquelle on a calcule G */
                /* ainsi que maxpalier=G(maxval) */
            if (n>maxval)
            {
                    maxval = n;
                    maxpalier = max;
            }
            return max;
    }
     
    int main(int argc, char* argv[])
    {
            time_t t1;
            unsigned long v;
            char s[32];
     
            palier = (unsigned int *) malloc(10000000*sizeof(int));
     
            palier[0] = 0;
            palier[1] = 1;
            maxpalier = 1;
     
            while (true)
            {
                    printf("Entrez la valeur de N (RETURN pour sortir): ");
                    fflush(stdout);
                    gets(s);        /* je ne fais pas de test sur la valeur saisie */
                    if (*s == 0) break;
     
                    t1 = time(0L);
                    v = g(atoi(s));
                    printf("G(%u)=%u - %u sec\n\n", atoi(s), v, time(0L)-t1);
            }
            free(palier);
    }

  16. #56
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    superne0 a écrit:
    C'est important ou on s'en fout ?
    Non, c'est bien-sûr important si l'on passe par un tableau. Pour ma part, j'ai pris une marge en définissant un tableau de 10000000 entiers !

  17. #57
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par josse95
    Voici donc mon programme modifié de telle sorte qu'il mémorise les valeurs de palier lors de chaque appel de g(n).
    Si on appelle g(n-1) juste avant appeler g(n), le retour de g(n) est instantané, mais ça, on s'y attendait !
    Il semblerait que le code soit faux (déjà y a un true qui se promène dans un code C )

    Si on fait 12 ensuite 2... il dit que G(2) vaut 7 !

    Jc

  18. #58
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    Exact, j'ai mal prévu le retour en arrière (id est calculer G(x) puis G(y) avec y<x).

    Tu m'en poses des colles !

    Pour le true, je suis effectivement sous C++, donc je n'ai pas fait gaffe.

  19. #59
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 349
    Points : 376
    Points
    376
    Par défaut
    Voilà, j'ai ajouté un test au début de la fonction g et cela semble fonctionner.

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 124
    Points : 53
    Points
    53
    Par défaut
    re Joss !
    Est-ce que tu pourrais m'expliquer ton prog, car je connais pas le C++ (du genre vmin += delta) ...
    Et puis je comprends pas non plus les paramètres de la for() ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Procédure Stockée pour créer des TABLE dynamiquement
    Par GuyverZ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 12/05/2009, 22h29
  2. Réponses: 3
    Dernier message: 22/01/2009, 21h05
  3. Réponses: 2
    Dernier message: 14/07/2006, 14h24
  4. Créer des fonctions de conversion d'unités
    Par frenzy dans le forum Langage
    Réponses: 6
    Dernier message: 01/03/2006, 09h52
  5. Créer des fonctions au sein d'un script
    Par mat.M dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 31/03/2004, 15h25

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