/*************************************************************************************************************************************/
/* */
/* 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 */
/* #### */
/* */
/* */
/* Rappel des 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 */
/* */
/* */
/* soit (on notera que les valeurs suivantes de "TABLEAU 1" a "TABLEAU 9'" sont celles */
/* qui figurent dans l'article 'v $xamci/20130701100648 PLS429Simpson.pdf') : */
/* */
/* 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 */
/* */
/* Les TABLEAUx N et N' sont "orthogonaux" (dans le sens ou les conclusions sont donc */
/* "opposees") : */
/* */
/* 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
{
}
}
}