Calcolatore

Ciao a tutti!!!

Ho subito una domanda. Devo creare un calcolatore genetico. Vi spiego come funziona: innanzi tutto è per una specie di pappagallo. Serve agli allevatori per sapere la prole delle coppie (gestisco un sito su questa specie).

Io conosco quasi tutte le combinazioni, ma per i meno esperti è una cosa fondamentale. So chi sono i colori dominanti e i recessivi e quelli che si trasmettono solo se presenti nel maschio...

es: maschio giallo, femmina verde ---> figli gialli e verdi

maschio verde e femmina gialla ---> figli SOLO verdi

appunto perchè il giallo è un colore sesso legato

A parte questo, non so come ricrearlo in php. Ci proviamo insieme? E' una cosa possibilissima, perchè esistono molti siti stranieri che ce li hanno:

http://www.gencalc.com/gen/eng_genc.php?sp=0Lineo

http://www.katharinasittiche.de/en/mutations/calculator.php

(solo alcuni esempi)

Mi servirebbe solo un input, un indicazione della "retta via", un illuminazione sul codice, poi me la cavo io con tutte le probabilità e le eccezioni.

Ringrazio chiunque riesce a darmi una mano, è una cosa molto particolare e interessante, penso.

Sicuramente diversa dal solito.

A prestissimo,

Giovanni

inviato 8 anni fa
gio4colo
X 0 X

Ciao,

qui dovrei rimettermi a studiare un po' di biologia prima  :P

Ho visto i link che hai postato e devo dire che strutturalmente sono molto diversi nella gestione degli input dei dati.

La prima cosa che ti consiglio di fare è di analizzare e raccogliere i dati di input che ti servono e di trovare un modo logico per raggrupparli e farli inserire all'utente. Fatto questo potrai iniziare a scrivere la parte di codice in PHP che ti gestisce i vari casi in base agli input ricevuti.

Serve agli allevatori per sapere la prole delle coppie (gestisco un sito su questa specie)

Questa frase mi preoccupa un po' e mi fa sorgere una domanda... se la prole risulta di colori diversi da quelli del calcolatore che succede?

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Cosa vuol dire di colori diversi da quelli del calcolatore?

Io devo farlo per la stessa specie dei due siti che vi ho dato.

Il primo, strutturalmente è un po' dispersivo per i poco esperti, quello con la tabella da spillare nelle parti interessate. (Però è completo, con tutte le mutazioni)

La seconda è molto più semplice e intuitiva. Scegli le due mutazioni e fine.

I colori sono questi:

MASCHIO

Verde

Verde Scuro (o Giada)

Oliva

Azzurro (o Blu)

Cobalto

Malva

Cremino

Lutino

Ala grigia (o Dilutito)

Ala grigia (o Dilutito) singolo fattore

Ala grigia (o Dilutito) doppio fattore

(Questi due però non sono ancora chiari, quindi direi di riassumerli in uno unico: Alal Grigia (o Diluito)

I maschi possono essere portatori (nei due calcolatori dei link, SPLINT TO), si segna con "/"

/blu

/ino (lutINO o cremINO)

FEMMINA

Verde

Verde Scuro (o Giada)

Oliva

Azzurro (o Blu)

Cobalto

Malva

Cremino

Lutino

Ala grigia (o Dilutito)

Le femmine possono essere solo

/blu

Questo perchè il fattore INO, è sesso legato, cioè trasmesso solo se è presente nel maschio.

Vi faccio edempi per capire

maschio ------ femmina ------------- prole

lutino             verde                       lutini e verde

verde             lutina                       maschi verdi /ino (agl'occhi sono verdi) e femmine verdi

lutino             lutina                       lutini

verde/ino       verde                      maschi verdi/ino e verdi, femmine lutine e verdi

Questo appunto perchè viene trasmesso solo se è presente nel maschio

Vi faccio vedere un po' di foto sul forum, così capite

http://ilbarrato.altervista.org/forum/viewtopic.php?f=25&t=99

Ora, che colore domina sull'altro?

Il verde domina su tutto  :P

Il resto è tutto recessivo.


A parte questa lezione sulla genetica, a qualcuno è venuto in mente come si può costruire una cosa del genere???

Con che comandi....?

Le combinazioni sono quasi 500, io avevo pensato a creare un enorme tabella con tutte le probabilità (da suicidio) e le 500 combinazioni....... e creare un area dove l'utente inseriva i dati e andava a pescarli nella tabella e dava il risultato, ma divento scemo veramente.  :crazy:

Per quanto riguarda la grafica e l'impostazione del calcolatore, volevo fare tipo un menù a tendina, come il secondo link. Semplice e chiaro, e magari sotto allego una tabella con un po' di foto per far capire la mutazione per proprio pappagallo ai poco esperti.

Idee?  :)

risposto 8 anni fa
gio4colo
X 0 X

Ciao,

questo mi è sembrato interessante!!!

http://www.quequero.org/Creare_un_Algoritmo_Genetico

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Wow!

Avevo sempre solo ricercato CALCOLATORE GENETICO o ALGORITMO PHP, mai una fusione dei criteri  8)

Leggo!!!

Grazie

risposto 8 anni fa
gio4colo
X 0 X

dovresti anche applicare concetti di calcolo combinatorio e probabilità (frequentista) per conoscere le possibili mutazioni sulla popolazione corrente verso la futura generazione.

:bye:

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

Il sito non ci interessa, sviluppa qualcosa di diverso da quello che cerco..

risposto 8 anni fa
gio4colo
X 0 X

Per fare quello che ti serve (in modo realistico) devi usare un algoritmo genetico che generi una popolazione di partenza (i genitori sono reali quindi dovrai rappresentare le loro caratteristiche nell'algoritmo), ad ogni iterazione l'algoritmo produce nuovi individui con un determinato livello di fitness e caratteristiche fisiche, ad ogni iterazione prendi i soggetti risultati e li memorizzi in una lista.

Il numero di generazione da creare lo decidi tu.

L'algoritmo non può conoscere se la popolazione di soggetti nell'iterazione Qi (una ben precisa iterazione, una qualsiasi, purchè sia possibile trovarsi in essa) sono migliori di quelli della generazione precedente o della successiva perciò alla fine della simulazione utilizzi il calcolo della probabilità per conoscere le caratteristiche dell'individuo che ha la maggiore probabilità di nascere dai due genitori, il suo sesso e le sue caratteristiche.

Questo richiede tempo e conoscenza (minima) di AI.

:bye:

PS : Putroppo sugli algoritmi genetici ho solo una conoscenza superficiale a causa del poco tempo che ho potuto dedicare al loro studio.

Potrebbe anche essere possibile che abbia detto qualche eresia, quindi ti invito a verificare comunque quello che devi fare e non prendere quello che ho detto come un dogma.

Cordiali saluti

risposto 8 anni fa
Andrea Turso
Andrea Turso
86
modificato 8 anni fa
X 0 X

Vi aggiorno su come sto sviluppando il tutto

<form name="pappagalli" action="genetica.php" method="GET">
        <p><span class="Stile5">Mutazione maschio:
            <select name="maschio">
              <option value="verde">Verde</option>
                  <option value="giada">Giada</option>
                  <option value="oliva">Oliva</option>
                  <option value="blu">Blu</option>
                  <option value="cobalto">Cobalto</option>
                  <option value="malva">Malva</option>
              </select>
            <br />
            <br />
          Mutazione femmina:</span>
          <select name="femmina">
            
            <option value="verde">Verde</option>
            <option value="giada">Giada</option>
            <option value="oliva">Oliva</option>
            <option value="blu">Blu</option>
            <option value="cobalto">Cobalto</option>
            <option value="malva">Malva</option>
          </select>
        </p>
        <p><br />
          <input type="submit" name="invia" value="Calcola" />
          <br />
        </p>
        </form>

Mi sono limitato alle mutazioni classiche, senza sessolegati e portatori. SOLO DOMINANTE E RECESSIVO

Però non funziona... Non capisco come mai.

Ho caricato tutto qua

http://ilbarrato.altervista.org/calgen.html

Trash : ho editato a causa di problemi con la visualizzazione del codice html.

risposto 8 anni fa
gio4colo
modificato 8 anni fa
Andrea Turso
Andrea Turso
86
X 0 X

scusate, manca il pezzo grosso

genetica.php

<?php
$col_m = $_GET['maschio'];
$col_f = $_GET['femmina'];


$sessolegati    = array("lutino", "cremino", ...);
$nofattoridom   = array("verde"...);
$nofattorirec   = array("blu"...);
$unfattoredom   = array("giada"...);
$unfattorerec   = array("cobalto"...);
$duefattoridom  = array("oliva"...);
$duefattorirec  = array("malva"...);

$figli_m = "Pulli maschi: ";
$figli_f = "Pulli femmine: ";

if ($col_m == $col_f) {
   $figli_m .= "100% " . $col_m;
   $figli_f .= "100% " . $col_f;
} elseif (...) {
     
} elseif (in_array($col_m, $nofattoridom) && in_array($col_f, $nofattoridom)) {
   $figli_m .= "100% " . $col_m;  
   $figli_f .= "100% " . $col_m;  
} elseif ((in_array($col_m, $nofattoridom) && in_array($col_f, $nofattorirec)) || (in_array($col_m, $nofattorirec) && in_array($col_f, $nofattoridom))) {
   if (in_array($col_m, $nofattoridom)) {  
       $col_d = $col_m;
       $col_r = $col_f;
   } else {
       $col_d = $col_f;
       $col_r = $col_m;
   }
   $figli_m .= "100% " . $col_d . "/" $col_r; 
   $figli_f .= "100% " . $col_d . "/" $col_r;  
   
   
} elseif ((in_array($col_m, $nofattoridom) && in_array($col_f, $unfattoredom)) || (in_array($col_m, $unfattoredom) && in_array($col_f, $nofattoridom))) {  
   $figli_m .= "50% " . $col_m . ", 50%" . $col_f;  
   $figli_f .= "50% " . $col_m . ", 50%" . $col_f;  

} elseif ((in_array($col_m, $nofattoridom) && in_array($col_f, $unfattorerec)) || (in_array($col_f, $unfattorerec) && in_array($col_m, $nofattoridom))) {
  
 if (in_array($col_m, $nofattoridom)) {  
       $col_d = $col_m;
       $col_r = $col_f;
   } else {
       $col_d = $col_f;
       $col_r = $col_m;
   }
   $figli_m .= "50% " . $col_d . "/" $col_r;", 50% " . "giada" . "/" $col_r;  
   $figli_f .= "50% " . $col_d . "/" $col_r;", 50% " . "giada" . "/" $col_r;  

   

} elseif (in_array($col_m, $nofattoridom) && in_array($col_f, $duefattoridom)) {
   $figli_m .= ." 50% giada". 
   $figli_f .= ." 50% giada". 
}

elseif (in_array($col_m, $duefattoridom) && in_array($col_f, $nofattoridom)) {
   $figli_m .= ." 50% giada". 
   $figli_f .= ." 50% giada". 
}

elseif (in_array($col_m, $nofattoridom) && in_array($col_f, $duefattorirec)) {
   $figli_m .= ." 50% giada /blu". 
   $figli_f .= ." 50% giada /blu". 
}

elseif (in_array($col_m, $duefattorirec) && in_array($col_f, $nofattoridom)) {
   $figli_m .= ." 50% giada /blu". 
   $figli_f .= ." 50% giada /blu". 
}

elseif (in_array($col_m, $nofattorirec) && in_array($col_f, $nofattorirec)) {
   $figli_m .= ." 100% blu". 
   $figli_f .= ." 100% blu". 
}

elseif (in_array($col_m, $nofattorirec) && in_array($col_f, $nofattorirec)) {
   $figli_m .= ." 100% " $col_m.
   $figli_f .= ." 100% " $col_m.
}

elseif (in_array($col_m, $nofattorirec) && in_array($col_f, $unfattoredom)) {
   $figli_m .= ." 50% verde /blu, 50%" $col_f "/blu".
   $figli_f .= ." 50% verde /blu, 50%" $col_f "/blu". 
}

elseif (in_array($col_m, $unfattoredom) && in_array($col_f, $nofattorirec) {
   $figli_m .= ." 50% verde /blu, 50%" .$col_m ."/blu".
   $figli_f .= ." 50% verde /blu, 50%" .$col_m ."/blu".
}

elseif (in_array($col_m, $nofattorirec) && in_array($col_f, $unfattorerec)) {
   $figli_m .= ." 50% ".$col_m", 50%" .$col_f.
   $figli_f .= ." 50% ".$col_m", 50%" .$col_f. 
}

elseif (in_array($col_m, $unfattorerec) && in_array($col_f, $nofattorirec)) {
   $figli_m .= ." 50% ".$col_f", 50%" .$col_m.
   $figli_f .= ." 50% ".$col_f", 50%" .$col_m. 
}

elseif (in_array($col_m, $nofattorirec) && in_array($col_f, $duefattoridom)) {
   $figli_m .= ." 100% giada /blu".
   $figli_f .= ." 100% giada /blu". 
}

elseif (in_array($col_m, $duefattoridom) && in_array($col_f, $nofattorirec)) {
   $figli_m .= ." 100% giada /blu".
   $figli_f .= ." 100% giada /blu". 
}

elseif (in_array($col_m, $nofattorirec) && in_array($col_f, $duefattorirec)) {
   $figli_m .= ." 100% cobalto".
   $figli_f .= ." 100% cobalto". 
}

elseif (in_array($col_m, $duefattorirec) && in_array($col_f, $nofattorirec)) {
   $figli_m .= ." 100% cobalto".
   $figli_f .= ." 100% cobalto". 
}

elseif (in_array($col_m, $unfattoredom) && in_array($col_f, $unfattoredom)) {
   $figli_m .= ." 25% verdi, 50% giada, 25% oliva"
   $figli_f .= ." 25% verdi, 50% giada, 25% oliva"
}

elseif ((in_array($col_m, $unfattoredom) && in_array($col_f, $unfattorerec)) || (in_array($col_f, $unfattorerec) && in_array($col_m, $unfattoredom))){
   $figli_m .= ." 25% verdi /blu, 50% giada /blu, 25% oliva /blu"
   $figli_f .= ." 25% verdi /blu, 50% giada /blu, 25% oliva /blu"
}

elseif ((in_array($col_m, $unfattoredom) && in_array($col_f, $duefattoridom)) || (in_array($col_f, $duefattoridom) && in_array($col_m, $unfattoredom))){
   $figli_m .= ." 50% giada, 50% oliva".
   $figli_f .= ." 50% giada, 50% oliva".
}

elseif ((in_array($col_m, $unfattoredom) && in_array($col_f, $duefattorirec)) || (in_array($col_f, $duefattorirec) && in_array($col_m, $unfattoredom))){
   $figli_m .= ." 50% giada /blu, 50% oliva /blu".
   $figli_f .= ." 50% giada /blu, 50% oliva /blu".
}

elseif (in_array($col_m, $unfattorerec) && in_array($col_f, $unfattorerec)){
   $figli_m .= ." 25% blu, 50% cobalto, 25% malva".
   $figli_f .= ." 25% blu, 50% cobalto, 25% malva".
}

elseif ((in_array($col_m, $unfattorerec) && in_array($col_f, $duefattoridom)) || (in_array($col_f, $duefattoridom) && in_array($col_m, $unfattorerec))){
   $figli_m .= ." 50% giada /blu, 50% oliva /blu".
   $figli_f .= ." 50% giada /blu, 50% oliva /blu".
}
elseif ((in_array($col_m, $unfattorerec) && in_array($col_f, $duefattorirec)) || (in_array($col_f, $duefattorirec) && in_array($col_m, $unfattorerec))){
   $figli_m .= ." 50% cobalto, 50% malva".
   $figli_f .= ." 50% cobalto, 50% malva".
}
elseif (in_array($col_m, $duefattoridom) && in_array($col_f, $duefattoridom)) {
   $figli_m .= ." 100% oliva".
   $figli_f .= ." 100% oliva".
}

elseif ((in_array($col_m, $duefattoridom) && in_array($col_f, $duefattorirec)) || (in_array($col_f, $duefattorirec) && in_array($col_m, $duefattoridom))){
  $figli_m .= ." 100% oliva /blu".
   $figli_f .= ." 100% oliva /blu".
}

elseif (in_array($col_m, $duefattorirec) && in_array($col_f, $duefattorirec)) {
   $figli_m .= ." 100% malva".
   $figli_f .= ." 100% malva".
}





elseif (...) {
       // Se devi mettere ancora qualcosa...
}
echo $figli_m.$figli_f;
risposto 8 anni fa
gio4colo
X 0 X

Novità. Un mio amico mi ha scritto questo codice, ma non capisce come mai non funziona...

nella pagina inserisco il form

<form action="calcola.php" method="post">
        <p>MASCHIO
          <select name="maschio">
                <option selected="selected">-- Seleziona --</option>
                <option value="MMCCGG">Verde</option>
                <option value="MMCCGg">Verde /blu</option>
                <option value="MMCCgg">Blu</option>
                <option value="MMCSGG">Giada (Verde Scuro)</option>
                <option value="MMCSGg">Giada /blu</option>
                <option value="MMCSgg">Cobalto</option>
                <option value="MMSSGG">Oliva</option>
                <option value="MMSSGg">Oliva /blu</option>
                <option value="MMSSgg">Malva</option>
                <option value="MmCCGG">Verde /ino</option>
                <option value="MmCCGg">Verde /ino e blu</option>
                <option value="MmCCgg">Blu /ino</option>
                <option value="MmCSGG">Giada /ino</option>
                <option value="MmCSGg">Giada /ino e blu</option>
                <option value="MmCSgg">Cobalto /ino</option>
                <option value="MmSSGG">Oliva /ino</option>
                <option value="MmSSGg">Oliva /ino e blu</option>
                <option value="MmSSgg">Malva /ino</option>
                <option value="mmCCGG">Lutino</option>
                <option value="mmCCGg">Lutino /blu</option>
                <option value="mmCCgg">Cremino</option>
                <option value="mmCSGG">Lutino 1fs</option>
                <option value="mmCSGg">Lutino 1fs /blu</option>
                <option value="mmCSgg">Cremino 1fs</option>
                <option value="mmSSGG">Lutino 2fs</option>
                <option value="mmSSGg">Lutino 2fs /blu</option>
                <option value="mmSSgg">Cremino 2fs</option>
                 </select>
          <br />
          <br />
          FEMMINA
          <select name="femmina">
            <option selected="selected">-- Seleziona --</option>
            <option value="MFCCGG">Verde</option>
            <option value="MFCCGg">Verde /blu</option>
            <option value="MFCCgg">Blu</option>
            <option value="MFCSGG">Giada (Verde Scuro)</option>
            <option value="MFCSGg">Giada /blu</option>
            <option value="MFCSgg">Cobalto</option>
            <option value="MFSSGG">Oliva</option>
            <option value="MFSSGg">Oliva /blu</option>
            <option value="MFSSgg">Malva</option>
            <option value="mFCCGG">Lutino</option>
            <option value="mFCCGg">Lutino /blu</option>
            <option value="mFCCgg">Cremino</option>
            <option value="mFCSGG">Lutino 1fs</option>
            <option value="mFCSGg">Lutino 1fs /blu</option>
            <option value="mFCSgg">Cremino 1fs</option>
            <option value="mFSSGG">Lutino 2fs</option>
            <option value="mFSSGg">Lutino 2fs /blu</option>
            <option value="mFSSgg">Cremino 2fs</option>
          </select>
          <br />
          <br />
          <input type="submit" value="Calcola!" /></form>

Dove ogni colore è una combinazione di lettere. I caratteri sessuali sono: M è quello maschile, F quello femminile codominanti, m il "lutino" recessivo.

I colori G (verde), laltro è il recessivo g (blu), e i fattori scurenti con due caratteri codominanti C (chiaro) e S (scuro).

qui il file calcola.php

// salva in un file a parte le funzioni del post sopra e includile di seguito...
include "generatori.php";

$figli = distrib_figli ($_POST['femmina'], $_POST['maschio']);



// specifica qui l'array con chiavi le stringhe genetiche e valori 0
$conteggio = array (
   'MMCCGG' => 0,
   'MMCCGg' => 0,
   'MMCCgg' => 0,
   'MMCSGG' => 0,
   'MMCSGg' => 0,
   'MMCSgg' => 0,
   'MMSSGG' => 0,
   'MMSSGg' => 0,
   'MMSSgg' => 0,
   'MmCCGG' => 0,
   'MmCCGg' => 0,
   'MmCCgg' => 0,
   'MmCSGG' => 0,
   'MmCSGg' => 0,
   'MmCSgg' => 0,
   'MmSSGG' => 0,
   'MmSSGg' => 0,
   'MmSSgg' => 0,
   'mmCCGG' => 0,
   'mmCCGg' => 0,
   'mmCCgg' => 0,
   'mmCSGG' => 0,
   'mmCSGg' => 0,
   'mmCSgg' => 0,
   'mmSSGG' => 0,
   'mmSSGg' => 0,
   'mmSSgg' => 0,
   
   'MFCCGG' => 0,
   'MFCCGg' => 0,
   'MFCCgg' => 0,
   'MFCSGG' => 0,
   'MFCSGg' => 0,
   'MFCSgg' => 0,
   'MFSSGG' => 0,
   'MFSSGg' => 0,
   'MFSSgg' => 0,
   'mFCCGG' => 0,
   'mfCCGg' => 0,
   'mFCCgg' => 0,
   'mFCSGG' => 0,
   'mFCSGg' => 0,
   'mFCSgg' => 0,
   'mFSSGG' => 0,
   'mFSSGg' => 0,
   'mFSSgg' => 0
);

// conteggio valori
for ($i = 0; $i < count ($figli); $i++)
   $conteggio[$figli[$i]]++;

// riepilogo risultati... da completare
if ($conteggio['MMCCGG'] > 0)
   echo ($conteggio['MMCCGG'] * 100 / count ($figli)) . '% maschi verdi';
if ($conteggio['MMCCGg'] > 0)
   echo ($conteggio['MMCCGg'] * 100 / count ($figli)) . '% maschi verdi /blu';
if ($conteggio['MMCCgg'] > 0)
   echo ($conteggio['MMCCgg'] * 100 / count ($figli)) . '% maschi blu';


if ($conteggio['MMCSGG'] > 0)
   echo ($conteggio['MMCSGG'] * 100 / count ($figli)) . '% maschi giada';
if ($conteggio['MMCSGg'] > 0)
   echo ($conteggio['MMCSGg'] * 100 / count ($figli)) . '% maschi giada /blu';
if ($conteggio['MMCSgg'] > 0)
   echo ($conteggio['MMCSgg'] * 100 / count ($figli)) . '% maschi cobalto';
   
   
   if ($conteggio['MMSSGG'] > 0)
   echo ($conteggio['MMSSGG'] * 100 / count ($figli)) . '% maschi oliva';
if ($conteggio['MMSSGg'] > 0)
   echo ($conteggio['MMSSGg'] * 100 / count ($figli)) . '% maschi oliva /blu';
if ($conteggio['MMSSgg'] > 0)
   echo ($conteggio['MMSSgg'] * 100 / count ($figli)) . '% maschi malva';
   
   
   if ($conteggio['MmCCGG'] > 0)
   echo ($conteggio['MmCCGG'] * 100 / count ($figli)) . '% maschi verdi /ino';
if ($conteggio['MmCCGg'] > 0)
   echo ($conteggio['MmCCGg'] * 100 / count ($figli)) . '% maschi verdi /ino e blu';
if ($conteggio['MmCCgg'] > 0)
   echo ($conteggio['MmCCgg'] * 100 / count ($figli)) . '% maschi blu /ino';
   
   
   if ($conteggio['MmCSGG'] > 0)
   echo ($conteggio['MmCSGG'] * 100 / count ($figli)) . '% maschi giada /ino';
if ($conteggio['MmCSGg'] > 0)
   echo ($conteggio['MmCSGg'] * 100 / count ($figli)) . '% maschi giada /ino e blu';
if ($conteggio['MmCSgg'] > 0)
   echo ($conteggio['MmCSgg'] * 100 / count ($figli)) . '% maschi cobalto /ino';
   
   
   if ($conteggio['MmSSGG'] > 0)
   echo ($conteggio['MmSSG'] * 100 / count ($figli)) . '% maschi oliva /ino';
if ($conteggio['MmSSGg'] > 0)
   echo ($conteggio['MmSSGg'] * 100 / count ($figli)) . '% maschi oliva /ino e blu';
if ($conteggio['MmSSgg'] > 0)
   echo ($conteggio['MmSSgg'] * 100 / count ($figli)) . '% maschi malva /ino';
   
   
   if ($conteggio['mmCCGG'] > 0)
   echo ($conteggio['mmCCGG'] * 100 / count ($figli)) . '% maschi lutino';
if ($conteggio['mmCCGg'] > 0)
   echo ($conteggio['mmCCGg'] * 100 / count ($figli)) . '% maschi lutino /blu';
if ($conteggio['mmCCgg'] > 0)
   echo ($conteggio['mmCCgg'] * 100 / count ($figli)) . '% maschi cremino';


 if ($conteggio['mmCSGG'] > 0)
   echo ($conteggio['mmCSGG'] * 100 / count ($figli)) . '% maschi lutino 1fs';
if ($conteggio['mmCSGg'] > 0)
   echo ($conteggio['mmCSGg'] * 100 / count ($figli)) . '% maschi lutino 1fs /blu';
if ($conteggio['mmCSgg'] > 0)
   echo ($conteggio['mmCSgg'] * 100 / count ($figli)) . '% maschi cremino 1fs';
   
   
   if ($conteggio['mmSSGG'] > 0)
   echo ($conteggio['mmSSG'] * 100 / count ($figli)) . '% maschi lutino 2fs';
if ($conteggio['mmSSGg'] > 0)
   echo ($conteggio['mmSSGg'] * 100 / count ($figli)) . '% maschi lutino 2fs /blu';
if ($conteggio['mmSSgg'] > 0)
   echo ($conteggio['mmSSgg'] * 100 / count ($figli)) . '% maschi cremino 2fs';
   
   
  // FEMMINEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE 
   
   
if ($conteggio['MFCCGG'] > 0)
   echo ($conteggio['MFCCGG'] * 100 / count ($figli)) . '% femmine verdi';
if ($conteggio['MFCCGg'] > 0)
   echo ($conteggio['MFCCGg'] * 100 / count ($figli)) . '% femmine verdi /blu';
if ($conteggio['MFCCgg'] > 0)
   echo ($conteggio['MFCCgg'] * 100 / count ($figli)) . '% femmine blu';


if ($conteggio['MFCSGG'] > 0)
   echo ($conteggio['MFCSGG'] * 100 / count ($figli)) . '% femmine giada';
if ($conteggio['MFCSGg'] > 0)
   echo ($conteggio['MFCSGg'] * 100 / count ($figli)) . '% femmine giada /blu';
if ($conteggio['MFCSgg'] > 0)
   echo ($conteggio['MFCSgg'] * 100 / count ($figli)) . '% femmine cobalto';
   
   
   if ($conteggio['MFSSGG'] > 0)
   echo ($conteggio['MFSSGG'] * 100 / count ($figli)) . '% femmine oliva';
if ($conteggio['MFSSGg'] > 0)
   echo ($conteggio['MFSSGg'] * 100 / count ($figli)) . '% femmine oliva /blu';
if ($conteggio['MFSSgg'] > 0)
   echo ($conteggio['MFSSgg'] * 100 / count ($figli)) . '% femmine malva';
   
   
   if ($conteggio['mFCCGG'] > 0)
   echo ($conteggio['mFCCGG'] * 100 / count ($figli)) . '% femmine lutino';
if ($conteggio['mFCCGg'] > 0)
   echo ($conteggio['mFCCGg'] * 100 / count ($figli)) . '% femmine lutino /blu';
if ($conteggio['mFCCgg'] > 0)
   echo ($conteggio['mFCCgg'] * 100 / count ($figli)) . '% femmine cremino';


 if ($conteggio['mFCSGG'] > 0)
   echo ($conteggio['mFCSGG'] * 100 / count ($figli)) . '% femmine lutino 1fs';
if ($conteggio['mFCSGg'] > 0)
   echo ($conteggio['mFCSGg'] * 100 / count ($figli)) . '% femmine lutino 1fs /blu';
if ($conteggio['mFCSgg'] > 0)
   echo ($conteggio['mFCSgg'] * 100 / count ($figli)) . '% femmine cremino 1fs';
   
   
   if ($conteggio['mFSSGG'] > 0)
   echo ($conteggio['mFSSG'] * 100 / count ($figli)) . '% femmine lutino 2fs';
if ($conteggio['mFSSGg'] > 0)
   echo ($conteggio['mFSSGg'] * 100 / count ($figli)) . '% femmine lutino 2fs /blu';
if ($conteggio['mFSSgg'] > 0)
   echo ($conteggio['mFSSgg'] * 100 / count ($figli)) . '% femmine cremino 2fs';

generatori.php

<?php
function distrib_figli ($madre, $padre)
{  
   $result = array ();
   $ch1_m = substr ($madre, 0, 2);
   $ch2_m = substr ($madre, 2, 4);
   $ch3_m = substr ($madre, 4, 6);
   $ch1_p = substr ($padre, 0, 2);
   $ch2_p = substr ($padre, 2, 4);
   $ch3_p = substr ($padre, 4, 6);
   $cross1 = cross ($ch1_m, $ch1_p);
   $cross2 = cross ($ch2_m, $ch2_p);
   $cross3 = cross ($ch3_m, $ch3_p);
   for ($i = 0; $i < 4; $i++)
      for ($j = 0; $j < 4; $j++)
         for ($k = 0; $k < 4; $k++)
            $result[16 * i + 4 * j + k] = $cross1[i] . $cross2[j] . $cross3[k];
   return $result;
}

function cross ($madre, $padre)
{
   $result = array ();
   $result[0] = substr ($madre, 0, 1) . substr ($padre, 0, 1);
   $result[1] = substr ($madre, 1, 2) . substr ($padre, 0, 1);
   $result[2] = substr ($madre, 0, 1) . substr ($padre, 1, 2);
   $result[3] = substr ($madre, 1, 2) . substr ($padre, 1, 2);
   return $result;
}  
?>

qui è online www.ilbarrato.altervista.org/calgen.html

Vedete che non funziona? Vi da una pagina bianca. Il mio amico si chiedeva: possibile che PHP non abbia una funzione per definire un array "vuoto" di N elementi?

risposto 8 anni fa
gio4colo
X 0 X

Ciao,

sicuramente cìè qualche errore nel codice php... solo che per fare tutti i test manca la parte di codice "generatori.php".

Se non vuoi renderlo di pubblico dominio puoi tranquillamente spedirmelo come messaggio privato.

Attendo tue notizie.

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

C'è generatori.php

è l'ultimo

<?php
function distrib_figli ($madre, $padre)
{  
   $result = array ();
   $ch1_m = substr ($madre, 0, 2);
   $ch2_m = substr ($madre, 2, 4);
   $ch3_m = substr ($madre, 4, 6);
   $ch1_p = substr ($padre, 0, 2);
   $ch2_p = substr ($padre, 2, 4);
   $ch3_p = substr ($padre, 4, 6);
   $cross1 = cross ($ch1_m, $ch1_p);
   $cross2 = cross ($ch2_m, $ch2_p);
   $cross3 = cross ($ch3_m, $ch3_p);
   for ($i = 0; $i < 4; $i++)
      for ($j = 0; $j < 4; $j++)
         for ($k = 0; $k < 4; $k++)
            $result[16 * i + 4 * j + k] = $cross1[i] . $cross2[j] . $cross3[k];
   return $result;
}

function cross ($madre, $padre)
{
   $result = array ();
   $result[0] = substr ($madre, 0, 1) . substr ($padre, 0, 1);
   $result[1] = substr ($madre, 1, 2) . substr ($padre, 0, 1);
   $result[2] = substr ($madre, 0, 1) . substr ($padre, 1, 2);
   $result[3] = substr ($madre, 1, 2) . substr ($padre, 1, 2);
   return $result;
}  
?>
risposto 8 anni fa
gio4colo
X 0 X

RISOLTO

Grazie mille

risposto 8 anni fa
gio4colo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda