correction et avancement sur le rapport
This commit is contained in:
+19
-24
@@ -166,33 +166,28 @@ double ul_mu_litter, ul_sigma_litter;
|
||||
void update_litter(rabbit_hole_t *rabbits, __uint128_t *new_kitten_male, __uint128_t *new_kitten_female) {
|
||||
(*new_kitten_female) = 0;
|
||||
(*new_kitten_male) = 0;
|
||||
// sigma par femelle carre = ((b-a+1)caree- 1)/12 = 4
|
||||
// sigma par femelle = 2
|
||||
//sigma total = sqrt(sigma par femelle carre * N)
|
||||
//mu = ((9+3)/2 ) * N = 6 * N
|
||||
if (rabbits->female_litter < 100) {
|
||||
for (i = 0; i < rabbits->female_litter; i++) {
|
||||
taille1 = 3 + (int)(4.0 * genrand_real2()); //TODO
|
||||
taille1 = 3 + (int)(4.0 * genrand_real2()); //TODO
|
||||
for (int k = 0; k < taille1; k++) {
|
||||
if (genrand_real1() > 0.5) (*new_kitten_male)++;
|
||||
else (*new_kitten_female)++;
|
||||
}
|
||||
|
||||
if (rabbits->female_litter < 100) {
|
||||
for (i = 0; i < rabbits->female_litter; i++) {
|
||||
taille1 = 3 + (int)(4.0 * genrand_real2());
|
||||
for (int k = 0; k < taille1; k++) {
|
||||
if (genrand_real1() > 0.5) (*new_kitten_male)++;
|
||||
else (*new_kitten_female)++;
|
||||
}
|
||||
}else {
|
||||
ul_mu_k = 6.0*(double)rabbits->female_litter;
|
||||
ul_sigma_k = sqrt(4.0 * (double)rabbits->female_litter);
|
||||
gauss(x_gauss);
|
||||
x_gauss[0] = CLAMP_BTW(x_gauss[0] * ul_sigma_k+ ul_mu_k, 0.0 , rabbits->female_litter * 9.0);
|
||||
|
||||
ul_mu_sex = x_gauss[0] * 0.5;
|
||||
ul_sigma_sex = sqrt(ul_mu_sex * 0.5);
|
||||
x_gauss[1] = CLAMP_BTW(x_gauss[1] * ul_sigma_sex + ul_mu_sex , 0.0, rabbits->female_litter * 9.0);
|
||||
|
||||
(*new_kitten_female) = (__uint128_t)roundl(x_gauss[1]) ;
|
||||
(*new_kitten_male) = (__uint128_t)roundl(x_gauss[0] - x_gauss[1]);
|
||||
}
|
||||
}else {
|
||||
ul_mu_k = 4.5*(double)rabbits->female_litter; // 4.5 = (b+a)/2
|
||||
ul_sigma_k = sqrt(1.118 * (double)rabbits->female_litter); //(k²−1)/12 = 1.118
|
||||
gauss(x_gauss);
|
||||
x_gauss[0] = CLAMP_BTW(x_gauss[0] * ul_sigma_k+ ul_mu_k, 0.0 , rabbits->female_litter * 9.0);
|
||||
|
||||
ul_mu_sex = x_gauss[0] * 0.5;
|
||||
ul_sigma_sex = sqrt(ul_mu_sex * 0.5);
|
||||
x_gauss[1] = CLAMP_BTW(x_gauss[1] * ul_sigma_sex + ul_mu_sex , 0.0, rabbits->female_litter * 9.0);
|
||||
|
||||
(*new_kitten_female) = (__uint128_t)roundl(x_gauss[1]) ;
|
||||
(*new_kitten_male) = (__uint128_t)roundl(x_gauss[0] - x_gauss[1]);
|
||||
}
|
||||
|
||||
nb_females = 0;
|
||||
for (i = 0; i < N_MATURE; i++) {
|
||||
|
||||
Reference in New Issue
Block a user