/*************************************************************************************************************************************/ /* */ /* 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 { } } }