Poblacion recombine(Poblacion p)
    {
        Poblacion ret = new Poblacion(p.getSize());
        if(p.getSize()%2!=0) {
            System.err.println("El tamaño de la poblacion debe ser par");
            System.exit(1);
        }
        int ham;
        Genotipo uno, dos;
        for(int i=0; i<p.getSize(); i += 2) {
            uno = p.getIndividuo(i);
            dos = p.getIndividuo(i+1);
            ham = hamming(uno, dos);
            if((double)ham/2 > d) {
                //swap half the differing bits at random
                int j = 0;
                int tam = uno.getSize();
                ham /= 2;
                while(ham>0) {
                    for(;j<tam; j++) {
                        if(uno.getGen(j)!=dos.getGen(j))  {
                            break;
                        }
                    }
                    if(rnd.nextBoolean()) { //swap
                        boolean temp = uno.getGen(j);
                        uno.setGen( j, dos.getGen(j));
                        dos.setGen( j, temp);
                    }
                    j++;
                    ham--;
                }
                //TODO: A quien agrego?
            }
            else {
                //delete the pair of structuraes from C(t)
                
            }
        }
                
        return ret;
    }