/*************************************************************************************************************************************/
/*                                                                                                                                   */
/*        E T U D E   A L E A T O I R E   D U   P A R A D O X E   D E   S I M P S O N                                                */
/*        E T   M E M E   D U   " D O U B L E "   P A R A D O X E   D E   S I M P S O N  :                                           */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        ATTENTION :                                                                                                                */
/*                                                                                                                                   */
/*                    Je note le 20171222120348 que la compilation                                                                   */
/*                  de ce programme doit se faire avec :                                                                             */
/*                                                                                                                                   */
/*                                      $Cc       ParadoxeSimpson.15$vv$c       $Bsysteme                                            */
/*                                                                                                                                   */
/*                  c'est-a-dire dans un ordre qui n'est pas celui                                                                   */
/*                  auquel je suis habitue ('$Bsysteme' en dernier                                                                   */
/*                  et non pas en premier...).                                                                                       */
/*                                                                                                                                   */
/*                                                                                                                                   */
/*        Author of '$xtc/ParadoxeSimpson.15$vv$c' :                                                                                 */
/*                                                                                                                                   */
/*                    Jean-Francois COLONNA (LACTAMME, 20130314085706).                                                              */
/*                                                                                                                                   */
/*************************************************************************************************************************************/

#include  "INCLUDES.01.I"

int       UtiliserLesDonneesInitiales=VRAI;
                                        /* Cet indicateur lorsqu'il est VRAI utilise le contenu des tableaux 'DonneesInitiales' et   */
                                        /* s'il est FAUX, les donnees initiales sont generees completement aleatoirement dans        */
                                        /* [ValeurMoyenne-AmplitudeAbsolue,ValeurMoyenne+AmplitudeAbsolue].                          */
                                        /*                                                                                           */
                                        /* Au passage il semble que generer completement aleatoirement les donnees initiales ne      */
                                        /* donne aucun resultat interessant...                                                       */
int       AccepterLesValeursNulles=FAUX;
                                        /* Cet indicateur lorsqu'il est VRAI permet d'accepter les solutions contenant un nombre nul */
                                        /* (ou plus...).                                                                             */
int       ContraindreLeTotal=FAUX;
                                        /* Cet indicateur lorsqu'il est VRAI permet de n'accepter que les solutions correspondant a  */
                                        /* nombre de patients egal a 'TOTAL' (introduit le 20130314173457).                          */
int       NeSortirQueLaSyntheseDesResultats=VRAI;
                                        /* Cet indicateur permet de ne sortir que la synthese (introduit le 20130314174055)...       */

extern    int       rand();
                                        /* Voir le 20130322101001 'v $xtc/Check_rand.01$vv$c 20130322101139' pour garantir la        */
                                        /* compatibilite de 'rand(...)'.                                                             */
extern    void      srand48();
extern    double    drand48();
                                        /* Voir le 20130322101001 'v $xtc/Check_drand48.01$vv$c 20130322100813' pour garantir la     */
                                        /* compatibilite de 'drand48(...)'.                                                          */
extern    double    floor();

extern    double    log10();
extern    double    pow();

#define   GRAINE_MINIMALE                                                                                                               \
                    1
long      int       GraineMinimale=GRAINE_MINIMALE;
#define   GRAINE_MAXIMALE                                                                                                               \
                    1000000000
long      int       GraineMaximale=GRAINE_MAXIMALE;
                                        /* Introduit le 20130314083108 afin de permettre facilement le lancement en parallele...     */
int       un_sur_n=1;
                                        /* Introduit le 20130319100529 afin de pouvoir ne pas perturber systematiquement             */
                                        /* aleatoirement dans 'GenereRandom(...)' : on ne le fera qu'une fois sur 'un_sur_n'...      */

int       ValeurMoyenne=8;
int       AmplitudeAbsolue=4;
                                        /* Utile uniquement si 'UtiliserLesDonneesInitiales' est FAUX.                               */
                                        /*                                                                                           */
                                        /* Le 20130316093242, je note que :                                                          */
                                        /*                                                                                           */
                                        /*                  ValeurMoyenne=10                                                         */
                                        /*                  AmplitudeAbsolue=8                                                       */
                                        /*                                                                                           */
                                        /* ne donne aucune solution pour 1000000000 d'iterations...                                  */
                                        /*                                                                                           */
                                        /* Le 20130316095750, je note que :                                                          */
                                        /*                                                                                           */
                                        /*                  ValeurMoyenne=8                                                          */
                                        /*                  AmplitudeAbsolue=4                                                       */
                                        /*                                                                                           */
                                        /* ne donne aucune solution pour 1000000000 d'iterations...                                  */
int       AmplitudeRelative=2;
                                        /* Utile uniquement si 'UtiliserLesDonneesInitiales' est VRAI.                               */
                                        /*                                                                                           */
                                        /* Le 20130319150000, on notera que :                                                        */
                                        /*                                                                                           */
                                        /*                  AmplitudeRelative=1 ou 3                                                 */
                                        /*                  GraineMinimale=1                                                         */
                                        /*                  GraineMaximale=1000000000                                                */
                                        /*                  NumeroDesDonneesInitiales=0                                              */
                                        /*                                                                                           */
                                        /* ne donne rien d'interessant...                                                            */

#define   RANDOM(x) GenereRandom((double)(x))
                                        /* Generateur aleatoire dans [x-AmplitudeRelative,x+AmplitudeRelative].                      */

int       GenereRandom(moyenne)
double    moyenne;
          {
          double    ValeurAleatoire=moyenne;
                                        /* Au cas ou il n'y aurait pas de perturbation aleatoire...                                  */
          int       faire_un_tirage_aleatoire=VRAI;

          if        (un_sur_n > 1)
                    {
                    if        ((rand()%un_sur_n) == 0)
                              {
                                        /* Une fois sur 'n' on genere un nombre aleatoire...                                         */
                              }
                    else
                              {
                              faire_un_tirage_aleatoire=FAUX;
                                        /* Dans les autres cas ('n-1' fois sur 'n') on conserve sans modification l'argument (soit   */
                                        /* 'moyenne'...                                                                              */
                              }
                    }
          else
                    {
                    }

          if        (faire_un_tirage_aleatoire == VRAI)
                    {
                    int       iterer=VRAI;
                    double    MoyenneEffective=COND(UtiliserLesDonneesInitiales==VRAI,moyenne,ValeurMoyenne);

                    while     (iterer == VRAI)
                              {
                              ValeurAleatoire=((moyenne)+(int)(COND(UtiliserLesDonneesInitiales==VRAI,AmplitudeRelative,AmplitudeAbsolue)*2*(drand48()-0.5)));

                              if        (ValeurAleatoire < 0)
                                        {
                                        ValeurAleatoire = -ValeurAleatoire;
                                        }
                              else
                                        {
                                        }

                              ValeurAleatoire = floor(ValeurAleatoire);

                              if        ((AccepterLesValeursNulles == VRAI) || (ValeurAleatoire != 0))
                                        {
                                        iterer=FAUX;
                                        }
                              else
                                        {
                                        }
                              }
                    }
          else
                    {
                    }

          return(ValeurAleatoire);
          }

#define   DIMENSION 4
#define   TABLEAU   [DIMENSION][DIMENSION]

int       NumeroDesDonneesInitiales=10;
                                        /* A la date du 20130322101931, c'est le Jeu 10 qui semble le plus fructueux...              */
double    DonneesInitiales[]TABLEAU={
                                     {{19,13,6,2},{17,11,8,4},{1,7,10,22},{3,9,8,20}}
                                        /* Jeu 00 : il correspond a la liste originale de Jean-Paul Delahaye...                      */
                                    ,{{15,10,6,2},{14,9,8,4},{1,7,8,16},{3,9,8,16}}
                                        /* Jeu 01 (introduit le 20130315171903) : sans interet...                                    */
                                    ,{{13,10,6,2},{12,9,8,4},{1,7,8,12},{3,9,8,13}}
                                        /* Jeu 02 (introduit le 20130315175302) : sans interet...                                    */
                                    ,{{9,3,6,2},{7,1,8,4},{1,7,5,9},{3,9,7,9}}
                                        /* Jeu 03 (introduit le 20130316095931) : sans interet...                                    */
                                    ,{{19,13,16,12},{17,11,18,14},{11,17,10,22},{13,19,18,20}}
                                        /* Jeu 04 : sans interet...                                                                  */
                                    ,{{20,14,7,3},{18,12,9,5},{2,8,11,23},{4,10,9,21}}
                                        /* Jeu 05 (introduit le 20130318132849) : sans interet...                                    */
                                    ,{{18,12,5,1},{16,10,7,3},{1,6,9,21},{2,8,7,10}}
                                        /* Jeu 06 (introduit le 20130318135658) : sans interet...                                    */
                                    ,{{19,14,7,2},{17,11,7,5},{2,7,10,21},{2,9,8,20}}
                                        /* Jeu 07 (introduit le 20130319104718) : il correspond aux tableaux {6,7,8,9} obtenus       */
                                        /* avec la graine 63778032 et NumeroDesDonneesInitiales=0, donnant ainsi une configuration   */
                                        /* '=#=#' qui sert donc de base de depart...                                                 */
                                    ,{{20,14,7,4},{19,11,9,5},{2,8,11,23},{4,10,9,22}}
                                        /* Jeu 08 (introduit le 20130319151434) : il correspond aux tableaux {6,7,8,9} obtenus       */
                                        /* avec la graine 61465238 et NumeroDesDonneesInitiales=5, donnant ainsi une configuration   */
                                        /* '=#=#' qui sert donc de base de depart...                                                 */
                                    ,{{21,14,8,4},{19,12,8,6},{3,7,11,23},{4,10,9,22}}
                                        /* Jeu 09 (introduit le 20130319161302) : il correspond aux tableaux {6,7,8,9} obtenus       */
                                        /* avec la graine 44711909 et NumeroDesDonneesInitiales=8, donnant ainsi une configuration   */
                                        /* '##=#' qui sert donc de base de depart...                                                 */
                                    ,{{21,13,8,5},{19,12,8,5},{3,6,12,23},{4,10,9,23}}
                                        /* Jeu 10 (introduit le 20130319165637) : il correspond aux tableaux {6,7,8,9} obtenus       */
                                        /* avec la graine 383780572 et NumeroDesDonneesInitiales=9, donnant ainsi une configuration  */
                                        /* '##=#' qui sert donc de base de depart...                                                 */
                                    ,{{21,13,8,5},{19,13,8,4},{3,6,13,23},{4,10,9,24}}
                                        /* Jeu 11 (introduit le 20130319173724) : il correspond aux tableaux {6,7,8,9} obtenus       */
                                        /* avec la graine 232939059 et NumeroDesDonneesInitiales=10 donnant ainsi une configuration  */
                                        /* '####' qui sert donc de base de depart...                                                 */
                                        /*                                                                                           */
                                        /* On notera le 20130319181703 qu'il est moins interessant que le Jeu 10...                  */
                                        /*                                                                                           */
                                        /* On notera le 20171215132219 que cela correspond aux categories {A6,A7,A8,A9} figurant     */
                                        /* dans l'encadre 3 (Le "double Simpson") de 'v $xamci/20130701100648 "PLS429Simpson.pdf"'.  */
                                    ,{{21,14,9,4},{19,12,7,5},{3,5,12,24},{4,11,10,23}}
                                        /* Jeu 12 (introduit le 20130326091458) : il correspond aux tableaux {6',7',8',9'} obtenus   */
                                        /* avec la graine 232939059 et NumeroDesDonneesInitiales=10 donnant ainsi une configuration  */
                                        /* '####' qui sert donc de base de depart...                                                 */
                                        /*                                                                                           */
                                        /* On notera le 20130326102422 qu'il est moins interessant que le Jeu 10...                  */
                                        /*                                                                                           */
                                        /* On notera le 20171215132219 que cela correspond aux categories {B6,B7,B8,B9} figurant     */
                                        /* dans l'encadre 3 (Le "double Simpson") de 'v $xamci/20130701100648 "PLS429Simpson.pdf"'.  */
                                     };
                                        /* Le 20130318101005 fut introduit une liste unique afin de pouvoir editer la numero du      */
                                        /* jeu de donnees initiales utilisees...                                                     */

#define   Hyc_Gm    DonneesInitiales[NumeroDesDonneesInitiales][0][0]
#define   Hyc_Gp    DonneesInitiales[NumeroDesDonneesInitiales][0][2]
#define   HycNGm    DonneesInitiales[NumeroDesDonneesInitiales][0][1]
#define   HycNGp    DonneesInitiales[NumeroDesDonneesInitiales][0][3]

#define   Hyf_Gm    DonneesInitiales[NumeroDesDonneesInitiales][1][0]
#define   Hyf_Gp    DonneesInitiales[NumeroDesDonneesInitiales][1][2]
#define   HyfNGm    DonneesInitiales[NumeroDesDonneesInitiales][1][1]
#define   HyfNGp    DonneesInitiales[NumeroDesDonneesInitiales][1][3]

#define   Fyc_Gm    DonneesInitiales[NumeroDesDonneesInitiales][2][0]
#define   Fyc_Gp    DonneesInitiales[NumeroDesDonneesInitiales][2][2]
#define   FycNGm    DonneesInitiales[NumeroDesDonneesInitiales][2][1]
#define   FycNGp    DonneesInitiales[NumeroDesDonneesInitiales][2][3]

#define   Fyf_Gm    DonneesInitiales[NumeroDesDonneesInitiales][3][0]
#define   Fyf_Gp    DonneesInitiales[NumeroDesDonneesInitiales][3][2]
#define   FyfNGm    DonneesInitiales[NumeroDesDonneesInitiales][3][1]
#define   FyfNGp    DonneesInitiales[NumeroDesDonneesInitiales][3][3]

#define   TOTAL     ((Hyc_Gm)+(Hyc_Gp)+(HycNGm)+(HycNGp)+(Hyf_Gm)+(Hyf_Gp)+(HyfNGm)+(HyfNGp)+(Fyc_Gm)+(Fyc_Gp)+(FycNGm)+(FycNGp)+(Fyf_Gm)+(Fyf_Gp)+(FyfNGm)+(FyfNGp))
#define   vTOTAL1   v____GNG_1
#define   vTOTAL2   v____GNG_2
                                        /* Nombre total d'individus suppose (TOTAL) et calcules (vTOTAL), ces deux nombres devant    */
                                        /* evidemment etre egaux...                                                                  */

                                        /* Notations :                                                                               */
                                        /*                                                                                           */
                                        /*                  H         Homme                                                          */
                                        /*                  F         Femme                                                          */
                                        /*                  m         Medicament                                                     */
                                        /*                  p         Placebo                                                        */
                                        /*                  yc        Yeux Clairs                                                    */
                                        /*                  yf        Yeux Fonces                                                    */
                                        /*                  GNG       Gueri ou Non Gueri                                             */
                                        /*                  NG        Non Gueri                                                      */
                                        /*                  G         Gueri                                                          */
                                        /*                                                                                           */

                                        /* Definition des tableaux {6,7,8,9} :                                                       */
#define   vHyc_Gm1  tableaux_6789[0][0]
#define   vHycNGm1  tableaux_6789[0][1]
#define   vHyc_Gp1  tableaux_6789[0][2]
#define   vHycNGp1  tableaux_6789[0][3]
#define   vHyf_Gm1  tableaux_6789[1][0]
#define   vHyfNGm1  tableaux_6789[1][1]
#define   vHyf_Gp1  tableaux_6789[1][2]
#define   vHyfNGp1  tableaux_6789[1][3]
#define   vFyc_Gm1  tableaux_6789[2][0]
#define   vFycNGm1  tableaux_6789[2][1]
#define   vFyc_Gp1  tableaux_6789[2][2]
#define   vFycNGp1  tableaux_6789[2][3]
#define   vFyf_Gm1  tableaux_6789[3][0]
#define   vFyfNGm1  tableaux_6789[3][1]
#define   vFyf_Gp1  tableaux_6789[3][2]
#define   vFyfNGp1  tableaux_6789[3][3]

                                        /* Definition des tableaux {6',7',8',9'} :                                                   */
#define   vHyc_Gm2  tableaux_6p7p8p9p[0][0]
#define   vHycNGm2  tableaux_6p7p8p9p[0][1]
#define   vHyc_Gp2  tableaux_6p7p8p9p[0][2]
#define   vHycNGp2  tableaux_6p7p8p9p[0][3]
#define   vHyf_Gm2  tableaux_6p7p8p9p[1][0]
#define   vHyfNGm2  tableaux_6p7p8p9p[1][1]
#define   vHyf_Gp2  tableaux_6p7p8p9p[1][2]
#define   vHyfNGp2  tableaux_6p7p8p9p[1][3]
#define   vFyc_Gm2  tableaux_6p7p8p9p[2][0]
#define   vFycNGm2  tableaux_6p7p8p9p[2][1]
#define   vFyc_Gp2  tableaux_6p7p8p9p[2][2]
#define   vFycNGp2  tableaux_6p7p8p9p[2][3]
#define   vFyf_Gm2  tableaux_6p7p8p9p[3][0]
#define   vFyfNGm2  tableaux_6p7p8p9p[3][1]
#define   vFyf_Gp2  tableaux_6p7p8p9p[3][2]
#define   vFyfNGp2  tableaux_6p7p8p9p[3][3]

                                        /* Liste des regles de calcul des nombres (premiere serie, tableaux {1,2,...,8,9}) :         */
#define   vHyc_GNGm1          ((vHyc_Gm1)+(vHycNGm1))
#define   vHyc_GNGp1          ((vHyc_Gp1)+(vHycNGp1))
#define   vHyf_GNGm1          ((vHyf_Gm1)+(vHyfNGm1))
#define   vHyf_GNGp1          ((vHyf_Gp1)+(vHyfNGp1))
#define   vFyc_GNGm1          ((vFyc_Gm1)+(vFycNGm1))
#define   vFyc_GNGp1          ((vFyc_Gp1)+(vFycNGp1))
#define   vFyf_GNGm1          ((vFyf_Gm1)+(vFyfNGm1))
#define   vFyf_GNGp1          ((vFyf_Gp1)+(vFyfNGp1))

#define   v_yc_GNGm1          ((vHyc_GNGm1)+(vFyc_GNGm1))
#define   v_yc_GNGp1          ((vHyc_GNGp1)+(vFyc_GNGp1))
#define   v_yf_GNGm1          ((vHyf_GNGm1)+(vFyf_GNGm1))
#define   v_yf_GNGp1          ((vHyf_GNGp1)+(vFyf_GNGp1))
#define   vH___GNGm1          ((vHyc_GNGm1)+(vHyf_GNGm1))
#define   vH___GNGp1          ((vHyc_GNGp1)+(vHyf_GNGp1))
#define   vF___GNGm1          ((vFyc_GNGm1)+(vFyf_GNGm1))
#define   vF___GNGp1          ((vFyc_GNGp1)+(vFyf_GNGp1))
#define   v____GNGm1          ((vH___GNGm1)+(vF___GNGm1))
#define   v____GNGp1          ((vH___GNGp1)+(vF___GNGp1))
#define   v____GNG_1          ((v____GNGm1)+(v____GNGp1))

#define   v_yc_Gm1            ((vHyc_Gm1)+(vFyc_Gm1))
#define   v_yc_Gp1            ((vHyc_Gp1)+(vFyc_Gp1))
#define   v_ycNGm1            ((v_yc_GNGm1)-(v_yc_Gm1))
#define   v_ycNGp1            ((v_yc_GNGp1)-(v_yc_Gp1))
#define   v_yf_Gm1            ((vHyf_Gm1)+(vFyf_Gm1))
#define   v_yf_Gp1            ((vHyf_Gp1)+(vFyf_Gp1))
#define   v_yfNGm1            ((v_yf_GNGm1)-(v_yf_Gm1))
#define   v_yfNGp1            ((v_yf_GNGp1)-(v_yf_Gp1))
#define   vH___Gm1            ((vHyc_Gm1)+(vHyf_Gm1))
#define   vH___Gp1            ((vHyc_Gp1)+(vHyf_Gp1))
#define   vH__NGm1            ((vH___GNGm1)-(vH___Gm1))
#define   vH__NGp1            ((vH___GNGp1)-(vH___Gp1))
#define   vF___Gm1            ((vFyc_Gm1)+(vFyf_Gm1))
#define   vF___Gp1            ((vFyc_Gp1)+(vFyf_Gp1))
#define   vF__NGm1            ((vF___GNGm1)-(vF___Gm1))
#define   vF__NGp1            ((vF___GNGp1)-(vF___Gp1))
#define   v____Gm1            ((vH___Gm1)+(vF___Gm1))
#define   v____Gp1            ((vH___Gp1)+(vF___Gp1))
#define   v___NGm1            ((v____GNGm1)-(v____Gm1))
#define   v___NGp1            ((v____GNGp1)-(v____Gp1))

                                        /* Liste des regles de calcul des pourcentages (premiere serie, tableaux {1,2,...,8,9}) :    */
#define   wH___Gm1            ((vH___Gm1)/(vH___GNGm1))
#define   wH___Gp1            ((vH___Gp1)/(vH___GNGp1))
#define   wF___Gm1            ((vF___Gm1)/(vF___GNGm1))
#define   wF___Gp1            ((vF___Gp1)/(vF___GNGp1))
#define   w____Gm1            ((v____Gm1)/(v____GNGm1))
#define   w____Gp1            ((v____Gp1)/(v____GNGp1))
#define   w_yc_Gm1            ((v_yc_Gm1)/(v_yc_GNGm1))
#define   w_yc_Gp1            ((v_yc_Gp1)/(v_yc_GNGp1))
#define   w_yf_Gm1            ((v_yf_Gm1)/(v_yf_GNGm1))
#define   w_yf_Gp1            ((v_yf_Gp1)/(v_yf_GNGp1))

#define   wHyc_Gm1            ((vHyc_Gm1)/(vHyc_GNGm1))
#define   wHyc_Gp1            ((vHyc_Gp1)/(vHyc_GNGp1))
#define   wHyf_Gm1            ((vHyf_Gm1)/(vHyf_GNGm1))
#define   wHyf_Gp1            ((vHyf_Gp1)/(vHyf_GNGp1))
#define   wFyc_Gm1            ((vFyc_Gm1)/(vFyc_GNGm1))
#define   wFyc_Gp1            ((vFyc_Gp1)/(vFyc_GNGp1))
#define   wFyf_Gm1            ((vFyf_Gm1)/(vFyf_GNGm1))
#define   wFyf_Gp1            ((vFyf_Gp1)/(vFyf_GNGp1))

                                        /* Liste des regles de calcul des nombres (seconde serie, tableaux {1',2',...,8',9'}) :      */
#define   vHyc_GNGm2          ((vHyc_Gm2)+(vHycNGm2))
#define   vHyc_GNGp2          ((vHyc_Gp2)+(vHycNGp2))
#define   vHyf_GNGm2          ((vHyf_Gm2)+(vHyfNGm2))
#define   vHyf_GNGp2          ((vHyf_Gp2)+(vHyfNGp2))
#define   vFyc_GNGm2          ((vFyc_Gm2)+(vFycNGm2))
#define   vFyc_GNGp2          ((vFyc_Gp2)+(vFycNGp2))
#define   vFyf_GNGm2          ((vFyf_Gm2)+(vFyfNGm2))
#define   vFyf_GNGp2          ((vFyf_Gp2)+(vFyfNGp2))

#define   v_yc_GNGm2          ((vHyc_GNGm2)+(vFyc_GNGm2))
#define   v_yc_GNGp2          ((vHyc_GNGp2)+(vFyc_GNGp2))
#define   v_yf_GNGm2          ((vHyf_GNGm2)+(vFyf_GNGm2))
#define   v_yf_GNGp2          ((vHyf_GNGp2)+(vFyf_GNGp2))
#define   vH___GNGm2          ((vHyc_GNGm2)+(vHyf_GNGm2))
#define   vH___GNGp2          ((vHyc_GNGp2)+(vHyf_GNGp2))
#define   vF___GNGm2          ((vFyc_GNGm2)+(vFyf_GNGm2))
#define   vF___GNGp2          ((vFyc_GNGp2)+(vFyf_GNGp2))
#define   v____GNGm2          ((vH___GNGm2)+(vF___GNGm2))
#define   v____GNGp2          ((vH___GNGp2)+(vF___GNGp2))
#define   v____GNG_2          ((v____GNGm2)+(v____GNGp2))

#define   v_yc_Gm2            ((vHyc_Gm2)+(vFyc_Gm2))
#define   v_yc_Gp2            ((vHyc_Gp2)+(vFyc_Gp2))
#define   v_ycNGm2            ((v_yc_GNGm2)-(v_yc_Gm2))
#define   v_ycNGp2            ((v_yc_GNGp2)-(v_yc_Gp2))
#define   v_yf_Gm2            ((vHyf_Gm2)+(vFyf_Gm2))
#define   v_yf_Gp2            ((vHyf_Gp2)+(vFyf_Gp2))
#define   v_yfNGm2            ((v_yf_GNGm2)-(v_yf_Gm2))
#define   v_yfNGp2            ((v_yf_GNGp2)-(v_yf_Gp2))
#define   vH___Gm2            ((vHyc_Gm2)+(vHyf_Gm2))
#define   vH___Gp2            ((vHyc_Gp2)+(vHyf_Gp2))
#define   vH__NGm2            ((vH___GNGm2)-(vH___Gm2))
#define   vH__NGp2            ((vH___GNGp2)-(vH___Gp2))
#define   vF___Gm2            ((vFyc_Gm2)+(vFyf_Gm2))
#define   vF___Gp2            ((vFyc_Gp2)+(vFyf_Gp2))
#define   vF__NGm2            ((vF___GNGm2)-(vF___Gm2))
#define   vF__NGp2            ((vF___GNGp2)-(vF___Gp2))
#define   v____Gm2            ((vH___Gm2)+(vF___Gm2))
#define   v____Gp2            ((vH___Gp2)+(vF___Gp2))
#define   v___NGm2            ((v____GNGm2)-(v____Gm2))
#define   v___NGp2            ((v____GNGp2)-(v____Gp2))

                                        /* Liste des regles de calcul des pourcentages (seconde serie, tableaux {1',2',...,8',9'}) : */
#define   wH___Gm2            ((vH___Gm2)/(vH___GNGm2))
#define   wH___Gp2            ((vH___Gp2)/(vH___GNGp2))
#define   wF___Gm2            ((vF___Gm2)/(vF___GNGm2))
#define   wF___Gp2            ((vF___Gp2)/(vF___GNGp2))
#define   w____Gm2            ((v____Gm2)/(v____GNGm2))
#define   w____Gp2            ((v____Gp2)/(v____GNGp2))
#define   w_yc_Gm2            ((v_yc_Gm2)/(v_yc_GNGm2))
#define   w_yc_Gp2            ((v_yc_Gp2)/(v_yc_GNGp2))
#define   w_yf_Gm2            ((v_yf_Gm2)/(v_yf_GNGm2))
#define   w_yf_Gp2            ((v_yf_Gp2)/(v_yf_GNGp2))

#define   wHyc_Gm2            ((vHyc_Gm2)/(vHyc_GNGm2))
#define   wHyc_Gp2            ((vHyc_Gp2)/(vHyc_GNGp2))
#define   wHyf_Gm2            ((vHyf_Gm2)/(vHyf_GNGm2))
#define   wHyf_Gp2            ((vHyf_Gp2)/(vHyf_GNGp2))
#define   wFyc_Gm2            ((vFyc_Gm2)/(vFyc_GNGm2))
#define   wFyc_Gp2            ((vFyc_Gp2)/(vFyc_GNGp2))
#define   wFyf_Gm2            ((vFyf_Gm2)/(vFyf_GNGm2))
#define   wFyf_Gp2            ((vFyf_Gp2)/(vFyf_GNGp2))

void      main()
          {
          long      int       graine;

          gGetl(GraineMinimale,"GraineMinimale",GRAINE_MINIMALE);
          gGetl(GraineMaximale,"GraineMaximale",GRAINE_MAXIMALE);
                                        /* Parametrage eventuel du nombre d'iterations afin de faciliter le lancement parallele...   */

          for       (graine=GraineMinimale ; graine <= GraineMaximale ; graine++)
                    {
                    double    tableaux_6789 TABLEAU;
                                        /* Definition des tableaux {6,7,8,9} (qui doivent etres identiques a {6',7',8',9'}).         */
                    double    tableaux_6p7p8p9p TABLEAU;
                                        /* Definition des tableaux {6',7',8',9'} (qui doivent etres identiques a {6,7,8,9}).         */

                    srand48(graine);
                                        /* Initialisation du generateur aleatoire a chaque iteration afin de faciliter la            */
                                        /* reproductibilite des resultats...                                                         */

                    vHyc_Gm1=RANDOM(Hyc_Gm);
                    vHycNGm1=RANDOM(HycNGm);
                    vHyc_Gp1=RANDOM(Hyc_Gp);
                    vHycNGp1=RANDOM(HycNGp);
                    vHyf_Gm1=RANDOM(Hyf_Gm);
                    vHyfNGm1=RANDOM(HyfNGm);
                    vHyf_Gp1=RANDOM(Hyf_Gp);
                    vHyfNGp1=RANDOM(HyfNGp);
                    vFyc_Gm1=RANDOM(Fyc_Gm);
                    vFycNGm1=RANDOM(FycNGm);
                    vFyc_Gp1=RANDOM(Fyc_Gp);
                    vFycNGp1=RANDOM(FycNGp);
                    vFyf_Gm1=RANDOM(Fyf_Gm);
                    vFyfNGm1=RANDOM(FyfNGm);
                    vFyf_Gp1=RANDOM(Fyf_Gp);
                    vFyfNGp1=RANDOM(FyfNGp);
                                        /* Generation aleatoire des 4x4 nombres "de base" formant les tableaux {6,7,8,9}.            */

                    vHyc_Gm2=RANDOM(Hyc_Gm);
                    vHycNGm2=RANDOM(HycNGm);
                    vHyc_Gp2=RANDOM(Hyc_Gp);
                    vHycNGp2=RANDOM(HycNGp);
                    vHyf_Gm2=RANDOM(Hyf_Gm);
                    vHyfNGm2=RANDOM(HyfNGm);
                    vHyf_Gp2=RANDOM(Hyf_Gp);
                    vHyfNGp2=RANDOM(HyfNGp);
                    vFyc_Gm2=RANDOM(Fyc_Gm);
                    vFycNGm2=RANDOM(FycNGm);
                    vFyc_Gp2=RANDOM(Fyc_Gp);
                    vFycNGp2=RANDOM(FycNGp);
                    vFyf_Gm2=RANDOM(Fyf_Gm);
                    vFyfNGm2=RANDOM(FyfNGm);
                    vFyf_Gp2=RANDOM(Fyf_Gp);
                    vFyfNGp2=RANDOM(FyfNGp);
                                        /* Generation aleatoire des 4x4 nombres "de base" formant les tableaux {6',7',8',9'}.        */

                    if        (         (         (ContraindreLeTotal == VRAI)
                                        &&        (         (vTOTAL1 == TOTAL)
                                                  &&        (vTOTAL2 == TOTAL)
                                                   )
                                         )
                              ||        (         (ContraindreLeTotal == FAUX)
                                        &&        (vTOTAL1 == vTOTAL2)
                                         )
                               )
                              {
                              if        (         (         (v____Gm1 == v____Gm2)
                                                  &&        (v___NGm1 == v___NGm2)
                                                  &&        (v____Gp1 == v____Gp2)
                                                  &&        (v___NGp1 == v___NGp2)
                                                  &&        (vH___Gm1 == vH___Gm2)
                                                  &&        (vH__NGm1 == vH__NGm2)
                                                  &&        (vH___Gp1 == vH___Gp2)
                                                  &&        (vH__NGp1 == vH__NGp2)
                                                  &&        (vF___Gm1 == vF___Gm2)
                                                  &&        (vF__NGm1 == vF__NGm2)
                                                  &&        (vF___Gp1 == vF___Gp2)
                                                  &&        (vF__NGp1 == vF__NGp2)
                                                  &&        (v_yc_Gm1 == v_yc_Gm2)
                                                  &&        (v_ycNGm1 == v_ycNGm2)
                                                  &&        (v_yc_Gp1 == v_yc_Gp2)
                                                  &&        (v_ycNGp1 == v_ycNGp2)
                                                  &&        (v_yf_Gm1 == v_yf_Gm2)
                                                  &&        (v_yfNGm1 == v_yfNGm2)
                                                  &&        (v_yf_Gp1 == v_yf_Gp2)
                                                  &&        (v_yfNGp1 == v_yfNGp2)
                                                   )
                                        /* Les tableaux {1,2,3,4,5} et {1',2',3',4',5'} doivent etre identiques...                   */
                                        &&        (         (vHyc_Gm1 != vHyc_Gm2)
                                                  ||        (vHycNGm1 != vHycNGm2)
                                                  ||        (vHyc_Gp1 != vHyc_Gp2)
                                                  ||        (vHycNGp1 != vHycNGp2)
                                                  ||        (vHyf_Gm1 != vHyf_Gm2)
                                                  ||        (vHyfNGm1 != vHyfNGm2)
                                                  ||        (vHyf_Gp1 != vHyf_Gp2)
                                                  ||        (vHyfNGp1 != vHyfNGp2)
                                                  ||        (vFyc_Gm1 != vFyc_Gm2)
                                                  ||        (vFycNGm1 != vFycNGm2)
                                                  ||        (vFyc_Gp1 != vFyc_Gp2)
                                                  ||        (vFycNGp1 != vFycNGp2)
                                                  ||        (vFyf_Gm1 != vFyf_Gm2)
                                                  ||        (vFyfNGm1 != vFyfNGm2)
                                                  ||        (vFyf_Gp1 != vFyf_Gp2)
                                                  ||        (vFyfNGp1 != vFyfNGp2)
                                                   )
                                        /* Les tableaux {6,7,8,9} et {6',7',8',9'} doivent etre differents...                        */
                                         )
                                        {
#define   v____Gm   v____Gm1
#define   v___NGm   v___NGm1
#define   v____Gp   v____Gp1
#define   v___NGp   v___NGp1
#define   vH___Gm   vH___Gm1
#define   vH__NGm   vH__NGm1
#define   vH___Gp   vH___Gp1
#define   vH__NGp   vH__NGp1
#define   vF___Gm   vF___Gm1
#define   vF__NGm   vF__NGm1
#define   vF___Gp   vF___Gp1
#define   vF__NGp   vF__NGp1
#define   v_yc_Gm   v_yc_Gm1
#define   v_ycNGm   v_ycNGm1
#define   v_yc_Gp   v_yc_Gp1
#define   v_ycNGp   v_ycNGp1
#define   v_yf_Gm   v_yf_Gm1
#define   v_yfNGm   v_yfNGm1
#define   v_yf_Gp   v_yf_Gp1
#define   v_yfNGp   v_yfNGp1

#define   w____Gm   w____Gm1
#define   w___NGm   w___NGm1
#define   w____Gp   w____Gp1
#define   w___NGp   w___NGp1
#define   wH___Gm   wH___Gm1
#define   wH__NGm   wH__NGm1
#define   wH___Gp   wH___Gp1
#define   wH__NGp   wH__NGp1
#define   wF___Gm   wF___Gm1
#define   wF__NGm   wF__NGm1
#define   wF___Gp   wF___Gp1
#define   wF__NGp   wF__NGp1
#define   w_yc_Gm   w_yc_Gm1
#define   w_ycNGm   w_ycNGm1
#define   w_yc_Gp   w_yc_Gp1
#define   w_ycNGp   w_ycNGp1
#define   w_yf_Gm   w_yf_Gm1
#define   w_yfNGm   w_yfNGm1
#define   w_yf_Gp   w_yf_Gp1
#define   w_yfNGp   w_yfNGp1

#define   SI(pM,pP) COND((pM)>(pP),'>',COND((pM)<(pP),'<','='))
                                        /* Procedure d'edition "Superieur-Inferieur"...                                              */

                                        printf("\n**************************************************");

                                        printf(" Graine=%ld"
                                              ,graine
                                               );

                                        printf(" 1/%d"
                                              ,un_sur_n
                                               );

                                        if        (UtiliserLesDonneesInitiales == VRAI)
                                                  {
                                                  printf(" NumeroDesDonneesInitiales=%d AmplitudeRelative=%d"
                                                        ,NumeroDesDonneesInitiales
                                                        ,AmplitudeRelative
                                                         );
                                                  }
                                        else
                                                  {
                                                  printf(" AmplitudeAbsolue=%d ValeurMoyenne=%d"
                                                        ,AmplitudeAbsolue
                                                        ,ValeurMoyenne
                                                         );
                                                  }

                                        printf(" Population=%g\n"
                                              ,vTOTAL1
                                               );

                                        if        (NeSortirQueLaSyntheseDesResultats == FAUX)
                                                  {

#define   CHIFFRES  2

                                                  printf("TABLEAU 1 :\n");
                                                  printf("          m... : G=%0*d NG=%0*d\n",CHIFFRES,(int)v____Gm,CHIFFRES,(int)v___NGm);
                                                  printf("          p... : G=%0*d NG=%0*d\n",CHIFFRES,(int)v____Gp,CHIFFRES,(int)v___NGp);
                                                  printf("               m...=%f %c p...=%f\n",w____Gm,SI(w____Gm,w____Gp),w____Gp);

                                                  printf("\n");

                                                  printf("TABLEAU 2 :\n");
                                                  printf("          Hm.. : G=%0*d NG=%0*d\n",CHIFFRES,(int)vH___Gm,CHIFFRES,(int)vH__NGm);
                                                  printf("          Hp.. : G=%0*d NG=%0*d\n",CHIFFRES,(int)vH___Gp,CHIFFRES,(int)vH__NGp);
                                                  printf("               Hm..=%f %c Hp..=%f\n",wH___Gm,SI(wH___Gm,wH___Gp),wH___Gp);

                                                  printf("TABLEAU 3 :\n");
                                                  printf("          Fm.. : G=%0*d NG=%0*d\n",CHIFFRES,(int)vF___Gm,CHIFFRES,(int)vF__NGm);
                                                  printf("          Fp.. : G=%0*d NG=%0*d\n",CHIFFRES,(int)vF___Gp,CHIFFRES,(int)vF__NGp);
                                                  printf("               Fm..=%f %c Fp..=%f\n",wF___Gm,SI(wF___Gm,wF___Gp),wF___Gp);

                                                  printf("\n");

                                                  printf("TABLEAU 4 :\n");
                                                  printf("          ycm. : G=%0*d NG=%0*d\n",CHIFFRES,(int)v_yc_Gm,CHIFFRES,(int)v_ycNGm);
                                                  printf("          ycp. : G=%0*d NG=%0*d\n",CHIFFRES,(int)v_yc_Gp,CHIFFRES,(int)v_ycNGp);
                                                  printf("               ycm.=%f %c ycp.=%f\n",w_yc_Gm,SI(w_yc_Gm,w_yc_Gp),w_yc_Gp);

                                                  printf("TABLEAU 5 :\n");
                                                  printf("          yfm. : G=%0*d NG=%0*d\n",CHIFFRES,(int)v_yf_Gm,CHIFFRES,(int)v_yfNGm);
                                                  printf("          yfp. : G=%0*d NG=%0*d\n",CHIFFRES,(int)v_yf_Gp,CHIFFRES,(int)v_yfNGp);
                                                  printf("               yfm.=%f %c yfp.=%f\n",w_yf_Gm,SI(w_yf_Gm,w_yf_Gp),w_yf_Gp);

                                                  printf("\n");

                                                  printf("TABLEAU 6 :");
                                                  printf("                                       TABLEAU 6' :\n");
                                                  printf("          Hycm : G=%0*d NG=%0*d",CHIFFRES,(int)vHyc_Gm1,CHIFFRES,(int)vHycNGm1);
                                                  printf("                                 Hycm : G=%0*d NG=%0*d\n",CHIFFRES,(int)vHyc_Gm2,CHIFFRES,(int)vHycNGm2);
                                                  printf("          Hycp : G=%0*d NG=%0*d",CHIFFRES,(int)vHyc_Gp1,CHIFFRES,(int)vHycNGp1);
                                                  printf("                                 Hycp : G=%0*d NG=%0*d\n",CHIFFRES,(int)vHyc_Gp2,CHIFFRES,(int)vHycNGp2);
                                                  printf("               Hycm=%f %c Hycp=%f",wHyc_Gm1,SI(wHyc_Gm1,wHyc_Gp1),wHyc_Gp1);
                                                  printf("                     Hycm=%f %c Hycp=%f\n",wHyc_Gm2,SI(wHyc_Gm2,wHyc_Gp2),wHyc_Gp2);

                                                  printf("TABLEAU 7 :");
                                                  printf("                                       TABLEAU 7' :\n");
                                                  printf("          Hyfm : G=%0*d NG=%0*d",CHIFFRES,(int)vHyf_Gm1,CHIFFRES,(int)vHyfNGm1);
                                                  printf("                                 Hyfm : G=%0*d NG=%0*d\n",CHIFFRES,(int)vHyf_Gm2,CHIFFRES,(int)vHyfNGm2);
                                                  printf("          Hyfp : G=%0*d NG=%0*d",CHIFFRES,(int)vHyf_Gp1,CHIFFRES,(int)vHyfNGp1);
                                                  printf("                                 Hyfp : G=%0*d NG=%0*d\n",CHIFFRES,(int)vHyf_Gp2,CHIFFRES,(int)vHyfNGp2);
                                                  printf("               Hyfm=%f %c Hyfp=%f",wHyf_Gm1,SI(wHyf_Gm1,wHyf_Gp1),wHyf_Gp1);
                                                  printf("                     Hyfm=%f %c Hyfp=%f\n",wHyf_Gm2,SI(wHyf_Gm2,wHyf_Gp2),wHyf_Gp2);

                                                  printf("TABLEAU 8 :");
                                                  printf("                                       TABLEAU 8' :\n");
                                                  printf("          Fycm : G=%0*d NG=%0*d",CHIFFRES,(int)vFyc_Gm1,CHIFFRES,(int)vFycNGm1);
                                                  printf("                                 Fycm : G=%0*d NG=%0*d\n",CHIFFRES,(int)vFyc_Gm2,CHIFFRES,(int)vFycNGm2);
                                                  printf("          Fycp : G=%0*d NG=%0*d",CHIFFRES,(int)vFyc_Gp1,CHIFFRES,(int)vFycNGp1);
                                                  printf("                                 Fycp : G=%0*d NG=%0*d\n",CHIFFRES,(int)vFyc_Gp2,CHIFFRES,(int)vFycNGp2);
                                                  printf("               Fycm=%f %c Fycp=%f",wFyc_Gm1,SI(wFyc_Gm1,wFyc_Gp1),wFyc_Gp1);
                                                  printf("                     Fycm=%f %c Fycp=%f\n",wFyc_Gm2,SI(wFyc_Gm2,wFyc_Gp2),wFyc_Gp2);

                                                  printf("TABLEAU 9 :");
                                                  printf("                                       TABLEAU 9' :\n");
                                                  printf("          Fyfm : G=%0*d NG=%0*d",CHIFFRES,(int)vFyf_Gm1,CHIFFRES,(int)vFyfNGm1);
                                                  printf("                                 Fyfm : G=%0*d NG=%0*d\n",CHIFFRES,(int)vFyf_Gm2,CHIFFRES,(int)vFyfNGm2);
                                                  printf("          Fyfp : G=%0*d NG=%0*d",CHIFFRES,(int)vFyf_Gp1,CHIFFRES,(int)vFyfNGp1);
                                                  printf("                                 Fyfp : G=%0*d NG=%0*d\n",CHIFFRES,(int)vFyf_Gp2,CHIFFRES,(int)vFyfNGp2);
                                                  printf("               Fyfm=%f %c Fyfp=%f",wFyf_Gm1,SI(wFyf_Gm1,wFyf_Gp1),wFyf_Gp1);
                                                  printf("                     Fyfm=%f %c Fyfp=%f\n",wFyf_Gm2,SI(wFyf_Gm2,wFyf_Gp2),wFyf_Gp2);

                                                  printf("\n");
                                                  printf("\n");
                                                  }
                                        else
                                                  {
                                                  }


#define   MP(pM,pP) SI(pM,pP)
#undef    MP
#define   MP(pM,pP) COND((pM)>(pP),'M',COND((pM)<(pP),'p','?'))
                                        /* Procedure d'edition "Medicament-Placebo" (introduite le 20130326080905 en complement      */
                                        /* de 'SI(...)'.                                                                             */
#define   ID(p1,p2) COND((p1)==(p2),'=','#')
                                        /* Procedure d'edition "IDentique"...                                                        */
#define   PRINT(c)  printf("%c",c)
                                        /* Procedure d'edition d'un caractere (introduite le 20130315101337).                        */

                                        PRINT(MP(w____Gm,w____Gp));
                                        PRINT(' ');
                                        PRINT(MP(wH___Gm,wH___Gp));
                                        PRINT(MP(wF___Gm,wF___Gp));
                                        PRINT(' ');
                                        PRINT(MP(w_yc_Gm,w_yc_Gp));
                                        PRINT(MP(w_yf_Gm,w_yf_Gp));
                                        /* Edition de la synthese des tableaux {1,2,3,4,5}.                                          */

                                        PRINT(' ');

                                        PRINT(MP(wHyc_Gm1,wHyc_Gp1));
                                        PRINT(MP(wHyf_Gm1,wHyf_Gp1));
                                        PRINT(MP(wFyc_Gm1,wFyc_Gp1));
                                        PRINT(MP(wFyf_Gm1,wFyf_Gp1));
                                        /* Edition de la synthese des tableaux {6,7,8,9}.                                            */
                                        PRINT('\n');

                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        /* Tabulation des tableaux {6',7',8',9'} par rapport aux tableaux {1,2,3,4,5}.               */

                                        PRINT(' ');

                                        PRINT(MP(wHyc_Gm2,wHyc_Gp2));
                                        PRINT(MP(wHyf_Gm2,wHyf_Gp2));
                                        PRINT(MP(wFyc_Gm2,wFyc_Gp2));
                                        PRINT(MP(wFyf_Gm2,wFyf_Gp2));
                                        /* Edition de la synthese des tableaux {6',7',8',9'}.                                        */
                                        PRINT('\n');

                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        PRINT(' ');
                                        /* Tabulation de la synthese des differences par rapport aux tableaux {1,2,3,4,5}.           */

                                        PRINT(' ');

                                        PRINT(ID(MP(wHyc_Gm1,wHyc_Gp1),MP(wHyc_Gm2,wHyc_Gp2)));
                                        PRINT(ID(MP(wHyf_Gm1,wHyf_Gp1),MP(wHyf_Gm2,wHyf_Gp2)));
                                        PRINT(ID(MP(wFyc_Gm1,wFyc_Gp1),MP(wFyc_Gm2,wFyc_Gp2)));
                                        PRINT(ID(MP(wFyf_Gm1,wFyf_Gp1),MP(wFyf_Gm2,wFyf_Gp2)));
                                        /* Edition de la synthese des differences entre les tableaux {6,7,8,9} et {6',7',8',9'}.     */

                                        PRINT('\n');
                                        /* Voici quelques cas interessants :                                                         */
                                        /*                                                                                           */
                                        /*   Dans 'v $xamco/20130315084609' :                                                        */
                                        /*   ------------------------------                                                          */
                                        /*                                                                                           */
                                        /*   Graine=63778032   1/1 NumeroDesDonneesInitiales=0 AmplitudeRelative=2 Population=161    */
                                        /*                  M pp MM pMpp                                                             */
                                        /*                          pppM                                                             */
                                        /*                          =#=#                                                             */
                                        /*                                                                                           */
                                        /*   Graine=155558393  1/1 NumeroDesDonneesInitiales=0 AmplitudeRelative=2 Population=162    */
                                        /*                  M pp MM ?ppp                                                             */
                                        /*                          pMpp                                                             */
                                        /*                          ##==                                                             */
                                        /*                                                                                           */
                                        /*   Graine=3450918099 1/1 NumeroDesDonneesInitiales=0 AmplitudeRelative=2 Population=160    */
                                        /*                  M pp MM ?pp?                                                             */
                                        /*                          p?pp                                                             */
                                        /*                          ##=#                                                             */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Dans 'v $xamco/20130315103306' :                                                        */
                                        /*   ------------------------------                                                          */
                                        /*                                                                                           */
                                        /*   Graine=7521311473 1/1 NumeroDesDonneesInitiales=0 AmplitudeRelative=3 Population=155    */
                                        /*                  M pp MM ppMp                                                             */
                                        /*                          pppM                                                             */
                                        /*                          ==##                                                             */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Le 20130318135658 :                                                                     */
                                        /*   -----------------                                                                       */
                                        /*                                                                                           */
                                        /*   Graine=61465238   1/1 NumeroDesDonneesInitiales=5 AmplitudeRelative=2 Population=178    */
                                        /*                  M pp MM pppp                                                             */
                                        /*                          pMpM                                                             */
                                        /*                          =#=#                                                             */
                                        /*                                                                                           */
                                        /*   Graine=97825856   1/1 NumeroDesDonneesInitiales=5 AmplitudeRelative=2 Population=175    */
                                        /*                  M pp MM pppp                                                             */
                                        /*                          MppM                                                             */
                                        /*                          #==#                                                             */
                                        /*                                                                                           */
                                        /*   Graine=172813393  1/1 NumeroDesDonneesInitiales=5 AmplitudeRelative=2 Population=179    */
                                        /*                  M pp MM pppM                                                             */
                                        /*                          pMpp                                                             */
                                        /*                          =#=#                                                             */
                                        /*                                                                                           */
                                        /*   Graine=617316359  1/1 NumeroDesDonneesInitiales=6 AmplitudeRelative=2 Population=139    */
                                        /*                  M pp Mp pppp                                                             */
                                        /*                          pMMp                                                             */
                                        /*                          =##=                                                             */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Le 20130319161302 :                                                                     */
                                        /*   -----------------                                                                       */
                                        /*                                                                                           */
                                        /*   Graine=44711909   1/1 NumeroDesDonneesInitiales=8 AmplitudeRelative=2 Population=181    */
                                        /*                  M pp MM pMpp                                                             */
                                        /*                          MppM                                                             */
                                        /*                          ##=#                                                             */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Le 20130319163051 :                                                                     */
                                        /*   -----------------                                                                       */
                                        /*                                                                                           */
                                        /*   Graine=383780572  1/1 NumeroDesDonneesInitiales=9 AmplitudeRelative=2 Population=181    */
                                        /*                  M ?p MM MppM                                                             */
                                        /*                          pMMp                                                             */
                                        /*                          ####                                                             */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Le 20130319170650 :                                                                     */
                                        /*   -----------------                                                                       */
                                        /*                                                                                           */
                                        /*   Graine=232939059  1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=183   */
                                        /*                  M pp MM MppM                                                             */
                                        /*                          pMMp                                                             */
                                        /*                          ####                                                             */
                                        /*                                                                                           */
                                        /* soit :                                                                                    */
                                        /*                                                                                           */
                                        /*                  TABLEAU 1 :                                                              */
                                        /*                            m... : G=47 NG=42                                              */
                                        /*                            p... : G=38 NG=56                                              */
                                        /*                                      m...=0.528090 > p...=0.404255                        */
                                        /*                                                                                           */
                                        /*                  TABLEAU 2 :                                                              */
                                        /*                            Hm.. : G=40 NG=26                                              */
                                        /*                            Hp.. : G=16 NG=09                                              */
                                        /*                                      Hm..=0.606061 < Hp..=0.640000                        */
                                        /*                  TABLEAU 3 :                                                              */
                                        /*                            Fm.. : G=07 NG=16                                              */
                                        /*                            Fp.. : G=22 NG=47                                              */
                                        /*                                      Fm..=0.304348 < Fp..=0.318841                        */
                                        /*                                                                                           */
                                        /*                  TABLEAU 4 :                                                              */
                                        /*                            ycm. : G=24 NG=19                                              */
                                        /*                            ycp. : G=21 NG=28                                              */
                                        /*                                      ycm.=0.558140 > ycp.=0.428571                        */
                                        /*                  TABLEAU 5 :                                                              */
                                        /*                            yfm. : G=23 NG=23                                              */
                                        /*                            yfp. : G=17 NG=28                                              */
                                        /*                                      yfm.=0.500000 > yfp.=0.377778                        */
                                        /*                                                                                           */
                                        /*        TABLEAU 6 :                             TABLEAU 6' :                               */
                                        /*             Hycm : G=21 NG=13                       Hycm : G=21 NG=14                     */
                                        /*             Hycp : G=08 NG=05                       Hycp : G=09 NG=04                     */
                                        /*                  Hycm=0.617647 > Hycp=0.615385           Hycm=0.600000 < Hycp=0.692308    */
                                        /*        TABLEAU 7 :                             TABLEAU 7' :                               */
                                        /*             Hyfm : G=19 NG=13                       Hyfm : G=19 NG=12                     */
                                        /*             Hyfp : G=08 NG=04                       Hyfp : G=07 NG=05                     */
                                        /*                  Hyfm=0.593750 < Hyfp=0.666667           Hyfm=0.612903 > Hyfp=0.583333    */
                                        /*        TABLEAU 8 :                             TABLEAU 8' :                               */
                                        /*             Fycm : G=03 NG=06                       Fycm : G=03 NG=05                     */
                                        /*             Fycp : G=13 NG=23                       Fycp : G=12 NG=24                     */
                                        /*                  Fycm=0.333333 < Fycp=0.361111           Fycm=0.375000 > Fycp=0.333333    */
                                        /*        TABLEAU 9 :                             TABLEAU 9' :                               */
                                        /*             Fyfm : G=04 NG=10                       Fyfm : G=04 NG=11                     */
                                        /*             Fyfp : G=09 NG=24                       Fyfp : G=10 NG=23                     */
                                        /*                  Fyfm=0.285714 > Fyfp=0.272727           Fyfm=0.266667 < Fyfp=0.303030    */
                                        /*                                                                                           */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=12                            */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Quelques solutions (obtenues aux environs du 20130320095930) du type :                  */
                                        /*   --------------------------------------------------------------------                    */
                                        /*                                                                                           */
                                        /*                  M pp MM pMMp                                                             */
                                        /*                          MppM                                                             */
                                        /*                          ####                                                             */
                                        /*                                                                                           */
                                        /*   Graine=101575573450 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=182 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=12                            */
                                        /*                  SignatureTableaux_6789....=2113070519130905307122304090924               */
                                        /*                  SignatureTableaux_6p7p8p9p=2114080419120806306112404101022               */
                                        /*                                                                                           */
                                        /*   Graine=102237009021 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=178 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=8                             */
                                        /*                  SignatureTableaux_6789....=2113080518110704307132204100924               */
                                        /*                  SignatureTableaux_6p7p8p9p=2013080419110705407132303100922               */
                                        /*                                                                                           */
                                        /*   Graine=1027892022   1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=181 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=2                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=12                            */
                                        /*                  SignatureTableaux_6789....=2213080518130805207122205100923               */
                                        /*                  SignatureTableaux_6p7p8p9p=2013090520130705407112203101022               */
                                        /*                                                                                           */
                                        /*   Graine=102975091933 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=182 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=12                            */
                                        /*                  SignatureTableaux_6789....=2113080519130805206132205100924               */
                                        /*                  SignatureTableaux_6p7p8p9p=2014090520120705305122204111023               */
                                        /*                                                                                           */
                                        /*   Graine=103312154163 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=183 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=12                            */
                                        /*                  SignatureTableaux_6789....=2113080519130804306132304100925               */
                                        /*                  SignatureTableaux_6p7p8p9p=2114090419120705305122404111023               */
                                        /*                                                                                           */
                                        /*   Graine=103495653307 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=178 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=8                             */
                                        /*                  SignatureTableaux_6789....=2213070519120804206112205100924               */
                                        /*                  SignatureTableaux_6p7p8p9p=2113070420120805306112304100922               */
                                        /*                                                                                           */
                                        /*                                                                                           */
                                        /*   Quelques solutions (obtenues aux environs du 20130320095930) du type :                  */
                                        /*   --------------------------------------------------------------------                    */
                                        /*                                                                                           */
                                        /*                  M pp MM MppM                                                             */
                                        /*                          pMMp                                                             */
                                        /*                          ####                                                             */
                                        /*                                                                                           */
                                        /*   Graine=100269223805 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=181 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=8                             */
                                        /*                  SignatureTableaux_6789....=2114080520120805305112303101024               */
                                        /*                  SignatureTableaux_6p7p8p9p=2213080519130805206112304091023               */
                                        /*                                                                                           */
                                        /*   Graine=100450634110 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=182 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=8                             */
                                        /*                  SignatureTableaux_6789....=2014080520120805306112304111023               */
                                        /*                  SignatureTableaux_6p7p8p9p=2113080519130805207112305101022               */
                                        /*                                                                                           */
                                        /*   Graine=100460767662 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=184 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=8                             */
                                        /*                  SignatureTableaux_6789....=2114090520130705406122403110823               */
                                        /*                  SignatureTableaux_6p7p8p9p=2214090619130704306122304110823               */
                                        /*                                                                                           */
                                        /*   Graine=101810260369 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=181 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=12                            */
                                        /*                  SignatureTableaux_6789....=2114090520110805306112303110923               */
                                        /*                  SignatureTableaux_6p7p8p9p=2213080519120905207122304100822               */
                                        /*                                                                                           */
                                        /*   Graine=102534566376 1/1 NumeroDesDonneesInitiales=10 AmplitudeRelative=2 Population=183 */
                                        /*                  Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=0                             */
                                        /*                  Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=1                             */
                                        /*                  Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=8                             */
                                        /*                  SignatureTableaux_6789....=2113090520130705305112304111024               */
                                        /*                  SignatureTableaux_6p7p8p9p=2213080519130805205122305110923               */
                                        /*                                                                                           */
                                        /*                                                                                           */

#define   INFINI    1000000000

                                                  {
                                                  double    MaximumTableaux=-INFINI;
                                        /* En fait, 'MaximumTableaux' n'a d'utilite que si 'BASE2(...)' est utilisee ci-dessous      */
                                        /* pour la definition de 'BASE(...)'. En fait le decoupage des signatures en deux rend       */
                                        /* cela inutile...                                                                           */

                                                  printf("\n");

                                                            {
                                                            int       i,j;
                                                            double    MinimumDifferences=+INFINI;
                                                            double    MaximumDifferences=-INFINI;
                                                            double    SommeDifferences=0;

                                                            for       (i=0 ; i<DIMENSION ; i++)
                                                                      {
                                                                      for       (j=0 ; j<DIMENSION ; j++)
                                                                                {
                                                                                double    difference=ABSO(tableaux_6789[i][j]-tableaux_6p7p8p9p[i][j]);

                                                                                MinimumDifferences=MIN2(MinimumDifferences,difference);
                                                                                MaximumDifferences=MAX2(MaximumDifferences,difference);
                                                                                SommeDifferences=SommeDifferences+difference;

                                                                                MaximumTableaux=MAX2(MaximumTableaux,MAX2(tableaux_6789[i][j],tableaux_6p7p8p9p[i][j]));
                                                                                }
                                                                      }

                                                            printf("\n");
                                                            printf("Minimum(|Tableaux_6789-Tableaux_6p7p8p9p|)=%d\n",(int)MinimumDifferences);
                                                            printf("Maximum(|Tableaux_6789-Tableaux_6p7p8p9p|)=%d\n",(int)MaximumDifferences);
                                                            printf("Somme__(|Tableaux_6789-Tableaux_6p7p8p9p|)=%d\n",(int)SommeDifferences);
                                        /* Editions introduites le 20130321092738 afin de trouver les tableaux {6,7,8,9} les plus    */
                                        /* differents des tableaux {6',7',8',9'}...                                                  */
                                                            }

                                                            {
                                                            long      int       Signature11=0,Signature12=0;
                                                            long      int       Signature21=0,Signature22=0;

#define   BASE1(x)  pow((double)10,(double)MAX2(((int)log10((double)x)+1),CHIFFRES))
#define   BASE2(x)  (MaximumTableaux+1)
#define   BASE(x)   BASE1(x)

#define   HORN(p,x) p=(BASE(x)*p)+x;
                                        /* ATTENTION : n'est pas representee exactement en format 'double' d'ou le decoupage en      */
                                        /* deux 'long int'...                                                                        */

                                                            printf("\n");

                                                            HORN(Signature11,vHyc_Gm1);
                                                            HORN(Signature11,vHycNGm1);
                                                            HORN(Signature11,vHyc_Gp1);
                                                            HORN(Signature11,vHycNGp1);
                                                            HORN(Signature11,vHyf_Gm1);
                                                            HORN(Signature11,vHyfNGm1);
                                                            HORN(Signature11,vHyf_Gp1);
                                                            HORN(Signature11,vHyfNGp1);

                                                            HORN(Signature12,vFyc_Gm1);
                                                            HORN(Signature12,vFycNGm1);
                                                            HORN(Signature12,vFyc_Gp1);
                                                            HORN(Signature12,vFycNGp1);
                                                            HORN(Signature12,vFyf_Gm1);
                                                            HORN(Signature12,vFyfNGm1);
                                                            HORN(Signature12,vFyf_Gp1);
                                                            HORN(Signature12,vFyfNGp1+1);

                                                            printf("SignatureTableaux_6789....={%ld,%ld}\n",Signature11,Signature12);

                                                            HORN(Signature21,vHyc_Gm2);
                                                            HORN(Signature21,vHycNGm2);
                                                            HORN(Signature21,vHyc_Gp2);
                                                            HORN(Signature21,vHycNGp2);
                                                            HORN(Signature21,vHyf_Gm2);
                                                            HORN(Signature21,vHyfNGm2);
                                                            HORN(Signature21,vHyf_Gp2);
                                                            HORN(Signature21,vHyfNGp2);

                                                            HORN(Signature22,vFyc_Gm2);
                                                            HORN(Signature22,vFycNGm2);
                                                            HORN(Signature22,vFyc_Gp2);
                                                            HORN(Signature22,vFycNGp2);
                                                            HORN(Signature22,vFyf_Gm2);
                                                            HORN(Signature22,vFyfNGm2);
                                                            HORN(Signature22,vFyf_Gp2);
                                                            HORN(Signature22,vFyfNGp2);

                                                            printf("SignatureTableaux_6p7p8p9p={%ld,%ld}\n",Signature21,Signature22);
                                        /* Les signatures des tableaux {6,7,8,9} et {6',7',8',9'} ont ete introduites le             */
                                        /* 20130320071912 afin de simplifier leur comparaison ("identiques" ou "differents")...      */
                                                            }
                                                  }
                                        }
                              else
                                        {
                                        }
                              }
                    else
                              {
                              }
                    }
          }



Copyright © Jean-François COLONNA, 2020-2024.
Copyright © CMAP (Centre de Mathématiques APpliquées) UMR CNRS 7641 / École polytechnique, Institut Polytechnique de Paris, 2020-2024.