<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Anfänger hat Code bekommen!]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin Anfänger in C++ (lese mich paralell ein und mache die Bsp auch). Ich habe hier nun einen Code, der anscheinend lauffähig ist und es auch irgendwie tut... dieser schmeisst aber komische Dinge aus, die ich nicht deuten kann.<br />
Da ist aber auch was von Initialisierung eines Generators die Rede und ich komme nicht so ganz weiter... Ich poste diesen nun hier mal (Bitte nicht schlagen!). Ich kann ihn leider nicht auf das Wesentliche reduzieren, da ich nicht weiss, was das Wesentliche ist!<br />
Gruss<br />
Zoli</p>
<pre><code>/*
 * File:   newmain.cpp
 * Author: 
 *
 * Created on 12. Mai 2009, 23:23
 */

# include &lt;iostream&gt;
# include &lt;stdlib.h&gt;
# include &lt;time.h&gt;
# include &lt;math.h&gt;
# include &lt;fstream&gt;

using namespace std;

int g=0; //Generationanzahl
const int maxGen=2500; //Abbruchkriterium, hier nach 2500 Generationen

const int mu=60; //Populationsgroesse Elternpopulation
const int lambda=50; //Anzahl Nachkommen
const int rho=20; //Anzahl der reproduzierenden Individuen
const int T=20; //Lebenstage der Pflanze
const float sigma=0.01; //Schrittweite
//true waere, wenn dominante Rekombination erwuenscht, false bedeutet intermediaere Rekombination
const bool dominanteRekombination = false;
const char strategie ='+'; //Auswahl zwischen Kommastrategie (,) und Plusstrategie (+)

const float r=0.1;
const float L0=0.01; //Startbiomasse

float population[mu][T]; //Population

int reproduzIndividuen[rho]; //Indizes der reproduzierenden Organismen aus der Population
float kinder[lambda][T]; //die erzeugten Kinder
float nachkomme[T]; //der einzelne Nachkomme, der in einer der lambda- Schleifeniterationen erzeugt wird

float zielfkt(float u[])
//berechnet fuer gegebene ur die Bluetenbiomasse nach den T Tagen
{
	float L=L0;
	float R=0.0;
	for(int t=0;t&lt;T;t++)
        {
		L= L + r*(1-u[t])*L;
		R= R + r*u[t]*L;
	}
	return R;
}

//generiert ganzzahlige gleichverteilte Zufallszahl zwischen 0 und max
//Vor Benutzung der Funktion muss Generator initialisiert werden

int zufallszahl(int max)
{
	int wert=rand()%(max+1);
	return (wert);
}

//generiert eine Zufallszahl zwischen 0 und 1
//(fueuer die zufaellige Initialiserung der Elterngeneration
//auch dieser Generator sollte vor Benutzung der Funktion initialisiert werden
float zufallszahl01()
{
float wert=rand()/(float)RAND_MAX;
return (wert);
}

//erzeugt eine normalverteilte Zufallszahl (nach der Polar- Methode)
float normalverteilt()
{
	float u1=2*zufallszahl01()-1;
	float u2=2*zufallszahl01()-1;
	float v=(2*u1-1)*(2*u1-1)+(2*u2-1)*(2*u2-1);
	while (v&gt;=1)
        {
		u1=2*zufallszahl01()-1;
		u2=2*zufallszahl01()-1;
		v=u1*u1+u2*u2;
	}
	float x=u1*sqrt((-2)*log(v)/v);
	return x;
}

//Initialisiert die Population der 0-ten Generation mit zufaelligen Werten
void initElternpop(){
	for(int i=0;i&lt;mu;i++){
		for(int j=0;j&lt;T;j++){
			population[i][j]=zufallszahl01();
		}
	}
}

int main(int argc, char *argv[]) {
    srand(time(NULL));
    //der ersten Zufallszahl wird nicht vertraut und deshalb wird sie verworfen
    rand();

	//File- Streams fuer die Beobachtungen
        ofstream BesteFit;
	ofstream GewinnBesteFit;
	ofstream DurchschnFit;
	ofstream GewinnDurchschnFit;
	ofstream BestesIndiv;

	//Öffne die File- Streams
        BesteFit.open(&quot;BesteFit.dat&quot;);
	GewinnBesteFit.open(&quot;GewinnBesteFit.dat&quot;);
	DurchschnFit.open(&quot;DurchschnFit.dat&quot;);
	GewinnDurchschnFit.open(&quot;GewinnDurchschnFit.dat&quot;);
	BestesIndiv.open(&quot;BestesIndiv.dat&quot;);

        //initialisiere die erste Generation zufaellig
        initElternpop();

        //Variablen zur Dokumentation
	//beste Fitness im aktuellen Schritt und in der letzten Generation
        float besteFitnessG, besteFitnessGG;
        //durschnittliche Fitness im aktuellen Schirtt und einen zuvor
	float durchschnFitnessG, durchschnFitnessGG; 
	float gewinnBesteFitness=0;
	float gewinnDurchschnFitness=0;
	//Index des besten Individums in der aktuellen Generation
        int fittest=0;

	//bestimme die beste und die durchschnittliche Fitness
        //der zufaelligen initialisierten Ausgangspopulation
        besteFitnessG=zielfkt(population[0]);
        float fit;
        float fitsum=0;
	for(int i=1;i&lt;mu;i++){
		fit=zielfkt(population[i]);
		if(fit&gt;besteFitnessG){
			besteFitnessG=fit;
			fittest=i;
		}
		fitsum+=fit;
	}
	durchschnFitnessG=fitsum/(float)mu;

        //Schleife fuer die Generationsdurchlaeufe, das Abbruchskrterium ist
        //das Erreichen einer bestimmten Generationsanzahl
        while (g&lt;maxGen){
            int elter;
            int woher;
            for(int i=0;i&lt;lambda;i++){
                for(int j=0;j&lt;rho;j++){
                    elter=zufallszahl(mu-1);
                    for(int k=0;k&lt;j;k++){
                        if(elter==reproduzIndividuen[k]){
                            elter=(elter+1)%mu;
                            k=0;
                        }
                    }
                    reproduzIndividuen[j]=elter;
                } 

                //rekombiniere Strategieparameter
                //findet hier nicht statt

                //rekombiniere Objektparameter
                //dominat:
                //bedeutet, dass der Wert des nachkommens fuer jede Stelle 
                //zufaellig aus den Eltern genommen wird
                if(dominanteRekombination){
                        for(int tag=0;tag&lt;T;tag++){
                            woher=zufallszahl(rho-1);
                            nachkomme[tag]=population[reproduzIndividuen[woher&rsqb;&rsqb;[tag];
                        }
                    }

                //intermediaer:
                //bedeutet, der Mittelwert der Eltern
                //wird fuer jede Position verwendet
                else {
                    for(int tag=0;tag&lt;T;tag++){
                        float summe=0;
                        for (int l=0;l&lt;rho;l++){
                            summe+=population[reproduzIndividuen[l&rsqb;&rsqb;[tag];
                        }
                        nachkomme[tag]=summe/(float)rho;
                    }
                }

                //mutierte Strategieparameter finden hier nicht statt
                //findet hier nicht statt

                //mutiere Objektparameter
                float mutierterWert;
                for (int tag=0;tag&lt;T;tag++){
                    //addiere normalverteilten Wert dazu
                    mutierterWert=nachkomme[tag]+(sigma*normalverteilt());
                    //Ueberpruefung, ob der Wert noch zwischen 0 und 1 ist
                    if(mutierterWert&lt;0){
                        mutierterWert=0;
                    }
                    if(mutierterWert&gt;1){
                        mutierterWert=1;
                    }
                    nachkomme[tag]=mutierterWert;
                }

                //fuege erzeugten Nachkommen in die Gruppe der Nachkommen ein
                for(int tag=0;tag&lt;T;tag++){
                    kinder[i][tag]=nachkomme[tag];
                }
            } //endfor

            //Selektion

            if (strategie==','){
                //mu, lambda: Selektiere mu neue Individuen
                //(neue Elternpopulation) aus der Kinderpopulation
                float guete[lambda];
                //berechne die Guete der Individuen
                for(int i=0;i&lt;lambda;i++){
                    guete[i]=zielfkt(kinder[i]);
                }
                //waehle die mu besten aus
                for(int i=0;i&lt;mu;i++){
                    //finde bestes Individuum
                    int maxpos=0;
                    for(int j=1;j&lt;lambda;j++){
                        if(guete[j]&gt;guete[maxpos]){
                            maxpos=j;
                        }
                    }
                    //Kopiere dieses in die Population
                    for(int l=0;l&lt;T;l++){
                        population[i][l]=kinder[maxpos][l];
                    }
                    guete[maxpos]= -1.0;
                }
            }
            else{
                //mu + lambda: Selektiere die mu besten Individuen aus Eltern und Kinderpopulation
                float neuePopulation[mu] [T];
                float gueteKinder[lambda];
                float gueteEltern[mu];

                //berechne die Guete der Kinder
                for(int i=0;i&lt;mu;i++){
                    gueteEltern[i]=zielfkt(population[i]);
                }
                //waehle daraus die mu besten aus
                for(int i=0;i&lt;mu;i++){
                    //finde das beste Individuum
                    int maxposKinder=0;
                    for(int j=1;j&lt;lambda;j++){
                        if(gueteKinder[j]&gt;gueteKinder[maxposKinder]){
                            maxposKinder=j;
                        }
                    }
                    int maxposEltern=0;
                    for(int j=1;j&lt;mu;j++){
                        if(gueteEltern[j]&gt;gueteEltern[maxposEltern]){
                            maxposEltern=j;
                        }
                    }

                    //ersetze nun alte Population durch neue
                    for(int indiv=0; indiv&lt;mu;indiv++){
                        for(int day=0;day&lt;T;day++){
                            population[indiv][day]=neuePopulation[indiv][day];
                        }
                    }
                }

                //Bewertung und Dokumentation
                //Qualitätsgewinn
                besteFitnessGG=zielfkt(population[0]);
                fittest=0;
                fitsum=0;
                for(int i=1;i&lt;mu;i++){
                    fit=zielfkt(population[i]);
                    if(fit&gt;besteFitnessGG){
                        besteFitnessGG=fit;
                        fittest=i;
                    }
                    fitsum+=fit;
                }
                durchschnFitnessGG=fitsum/(float)mu;
                gewinnBesteFitness=besteFitnessGG-besteFitnessG;
                gewinnDurchschnFitness=durchschnFitnessGG-durchschnFitnessG;
                besteFitnessG=besteFitnessGG;
                durchschnFitnessG=durchschnFitnessGG;

                //Dokumentation des Fitnessverlaufs, Schreiben in
                //verschiedene Dokumentationsdateien
                BesteFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; besteFitnessG &lt;&lt;&quot;\n&quot;;
                GewinnBesteFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; gewinnBesteFitness &lt;&lt; &quot;\n&quot;;
                DurchschnFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; durchschnFitnessG &lt;&lt; &quot;\n&quot;;
                GewinnDurchschnFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; gewinnDurchschnFitness &lt;&lt; &quot;\n&quot;;
                g++;
            }//endwhile

            //gibt das Ergebnis aus
            cout &lt;&lt; &quot;Ende nach &quot; &lt;&lt; g &lt;&lt; &quot; Generationen mit durschnittlicher Fitness&quot; &lt;&lt; durchschnFitnessG &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; &quot;Bestes Individuum mit Fitness &quot; &lt;&lt;besteFitnessG&lt;&lt; &quot; ist Individuum:&quot;&lt;&lt;&quot;\n&quot;;
            for(int d=0;d&lt;T;d++){
                cout &lt;&lt; population[fittest][d] &lt;&lt; &quot; &quot;;
                BestesIndiv &lt;&lt; d &lt;&lt; &quot; &quot; &lt;&lt; population[fittest][d] &lt;&lt; &quot;\n&quot;;
            }
            BesteFit.close();
            GewinnBesteFit.close();
            DurchschnFit.close();
            GewinnDurchschnFit.close();
            BestesIndiv.close();
        }
        return(0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/240914/anfänger-hat-code-bekommen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 21 Sep 2026 19:19:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/240914.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 13 May 2009 13:10:15 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Wed, 13 May 2009 13:10:15 GMT]]></title><description><![CDATA[<p>Hallo zusammen,<br />
ich bin Anfänger in C++ (lese mich paralell ein und mache die Bsp auch). Ich habe hier nun einen Code, der anscheinend lauffähig ist und es auch irgendwie tut... dieser schmeisst aber komische Dinge aus, die ich nicht deuten kann.<br />
Da ist aber auch was von Initialisierung eines Generators die Rede und ich komme nicht so ganz weiter... Ich poste diesen nun hier mal (Bitte nicht schlagen!). Ich kann ihn leider nicht auf das Wesentliche reduzieren, da ich nicht weiss, was das Wesentliche ist!<br />
Gruss<br />
Zoli</p>
<pre><code>/*
 * File:   newmain.cpp
 * Author: 
 *
 * Created on 12. Mai 2009, 23:23
 */

# include &lt;iostream&gt;
# include &lt;stdlib.h&gt;
# include &lt;time.h&gt;
# include &lt;math.h&gt;
# include &lt;fstream&gt;

using namespace std;

int g=0; //Generationanzahl
const int maxGen=2500; //Abbruchkriterium, hier nach 2500 Generationen

const int mu=60; //Populationsgroesse Elternpopulation
const int lambda=50; //Anzahl Nachkommen
const int rho=20; //Anzahl der reproduzierenden Individuen
const int T=20; //Lebenstage der Pflanze
const float sigma=0.01; //Schrittweite
//true waere, wenn dominante Rekombination erwuenscht, false bedeutet intermediaere Rekombination
const bool dominanteRekombination = false;
const char strategie ='+'; //Auswahl zwischen Kommastrategie (,) und Plusstrategie (+)

const float r=0.1;
const float L0=0.01; //Startbiomasse

float population[mu][T]; //Population

int reproduzIndividuen[rho]; //Indizes der reproduzierenden Organismen aus der Population
float kinder[lambda][T]; //die erzeugten Kinder
float nachkomme[T]; //der einzelne Nachkomme, der in einer der lambda- Schleifeniterationen erzeugt wird

float zielfkt(float u[])
//berechnet fuer gegebene ur die Bluetenbiomasse nach den T Tagen
{
	float L=L0;
	float R=0.0;
	for(int t=0;t&lt;T;t++)
        {
		L= L + r*(1-u[t])*L;
		R= R + r*u[t]*L;
	}
	return R;
}

//generiert ganzzahlige gleichverteilte Zufallszahl zwischen 0 und max
//Vor Benutzung der Funktion muss Generator initialisiert werden

int zufallszahl(int max)
{
	int wert=rand()%(max+1);
	return (wert);
}

//generiert eine Zufallszahl zwischen 0 und 1
//(fueuer die zufaellige Initialiserung der Elterngeneration
//auch dieser Generator sollte vor Benutzung der Funktion initialisiert werden
float zufallszahl01()
{
float wert=rand()/(float)RAND_MAX;
return (wert);
}

//erzeugt eine normalverteilte Zufallszahl (nach der Polar- Methode)
float normalverteilt()
{
	float u1=2*zufallszahl01()-1;
	float u2=2*zufallszahl01()-1;
	float v=(2*u1-1)*(2*u1-1)+(2*u2-1)*(2*u2-1);
	while (v&gt;=1)
        {
		u1=2*zufallszahl01()-1;
		u2=2*zufallszahl01()-1;
		v=u1*u1+u2*u2;
	}
	float x=u1*sqrt((-2)*log(v)/v);
	return x;
}

//Initialisiert die Population der 0-ten Generation mit zufaelligen Werten
void initElternpop(){
	for(int i=0;i&lt;mu;i++){
		for(int j=0;j&lt;T;j++){
			population[i][j]=zufallszahl01();
		}
	}
}

int main(int argc, char *argv[]) {
    srand(time(NULL));
    //der ersten Zufallszahl wird nicht vertraut und deshalb wird sie verworfen
    rand();

	//File- Streams fuer die Beobachtungen
        ofstream BesteFit;
	ofstream GewinnBesteFit;
	ofstream DurchschnFit;
	ofstream GewinnDurchschnFit;
	ofstream BestesIndiv;

	//Öffne die File- Streams
        BesteFit.open(&quot;BesteFit.dat&quot;);
	GewinnBesteFit.open(&quot;GewinnBesteFit.dat&quot;);
	DurchschnFit.open(&quot;DurchschnFit.dat&quot;);
	GewinnDurchschnFit.open(&quot;GewinnDurchschnFit.dat&quot;);
	BestesIndiv.open(&quot;BestesIndiv.dat&quot;);

        //initialisiere die erste Generation zufaellig
        initElternpop();

        //Variablen zur Dokumentation
	//beste Fitness im aktuellen Schritt und in der letzten Generation
        float besteFitnessG, besteFitnessGG;
        //durschnittliche Fitness im aktuellen Schirtt und einen zuvor
	float durchschnFitnessG, durchschnFitnessGG; 
	float gewinnBesteFitness=0;
	float gewinnDurchschnFitness=0;
	//Index des besten Individums in der aktuellen Generation
        int fittest=0;

	//bestimme die beste und die durchschnittliche Fitness
        //der zufaelligen initialisierten Ausgangspopulation
        besteFitnessG=zielfkt(population[0]);
        float fit;
        float fitsum=0;
	for(int i=1;i&lt;mu;i++){
		fit=zielfkt(population[i]);
		if(fit&gt;besteFitnessG){
			besteFitnessG=fit;
			fittest=i;
		}
		fitsum+=fit;
	}
	durchschnFitnessG=fitsum/(float)mu;

        //Schleife fuer die Generationsdurchlaeufe, das Abbruchskrterium ist
        //das Erreichen einer bestimmten Generationsanzahl
        while (g&lt;maxGen){
            int elter;
            int woher;
            for(int i=0;i&lt;lambda;i++){
                for(int j=0;j&lt;rho;j++){
                    elter=zufallszahl(mu-1);
                    for(int k=0;k&lt;j;k++){
                        if(elter==reproduzIndividuen[k]){
                            elter=(elter+1)%mu;
                            k=0;
                        }
                    }
                    reproduzIndividuen[j]=elter;
                } 

                //rekombiniere Strategieparameter
                //findet hier nicht statt

                //rekombiniere Objektparameter
                //dominat:
                //bedeutet, dass der Wert des nachkommens fuer jede Stelle 
                //zufaellig aus den Eltern genommen wird
                if(dominanteRekombination){
                        for(int tag=0;tag&lt;T;tag++){
                            woher=zufallszahl(rho-1);
                            nachkomme[tag]=population[reproduzIndividuen[woher&rsqb;&rsqb;[tag];
                        }
                    }

                //intermediaer:
                //bedeutet, der Mittelwert der Eltern
                //wird fuer jede Position verwendet
                else {
                    for(int tag=0;tag&lt;T;tag++){
                        float summe=0;
                        for (int l=0;l&lt;rho;l++){
                            summe+=population[reproduzIndividuen[l&rsqb;&rsqb;[tag];
                        }
                        nachkomme[tag]=summe/(float)rho;
                    }
                }

                //mutierte Strategieparameter finden hier nicht statt
                //findet hier nicht statt

                //mutiere Objektparameter
                float mutierterWert;
                for (int tag=0;tag&lt;T;tag++){
                    //addiere normalverteilten Wert dazu
                    mutierterWert=nachkomme[tag]+(sigma*normalverteilt());
                    //Ueberpruefung, ob der Wert noch zwischen 0 und 1 ist
                    if(mutierterWert&lt;0){
                        mutierterWert=0;
                    }
                    if(mutierterWert&gt;1){
                        mutierterWert=1;
                    }
                    nachkomme[tag]=mutierterWert;
                }

                //fuege erzeugten Nachkommen in die Gruppe der Nachkommen ein
                for(int tag=0;tag&lt;T;tag++){
                    kinder[i][tag]=nachkomme[tag];
                }
            } //endfor

            //Selektion

            if (strategie==','){
                //mu, lambda: Selektiere mu neue Individuen
                //(neue Elternpopulation) aus der Kinderpopulation
                float guete[lambda];
                //berechne die Guete der Individuen
                for(int i=0;i&lt;lambda;i++){
                    guete[i]=zielfkt(kinder[i]);
                }
                //waehle die mu besten aus
                for(int i=0;i&lt;mu;i++){
                    //finde bestes Individuum
                    int maxpos=0;
                    for(int j=1;j&lt;lambda;j++){
                        if(guete[j]&gt;guete[maxpos]){
                            maxpos=j;
                        }
                    }
                    //Kopiere dieses in die Population
                    for(int l=0;l&lt;T;l++){
                        population[i][l]=kinder[maxpos][l];
                    }
                    guete[maxpos]= -1.0;
                }
            }
            else{
                //mu + lambda: Selektiere die mu besten Individuen aus Eltern und Kinderpopulation
                float neuePopulation[mu] [T];
                float gueteKinder[lambda];
                float gueteEltern[mu];

                //berechne die Guete der Kinder
                for(int i=0;i&lt;mu;i++){
                    gueteEltern[i]=zielfkt(population[i]);
                }
                //waehle daraus die mu besten aus
                for(int i=0;i&lt;mu;i++){
                    //finde das beste Individuum
                    int maxposKinder=0;
                    for(int j=1;j&lt;lambda;j++){
                        if(gueteKinder[j]&gt;gueteKinder[maxposKinder]){
                            maxposKinder=j;
                        }
                    }
                    int maxposEltern=0;
                    for(int j=1;j&lt;mu;j++){
                        if(gueteEltern[j]&gt;gueteEltern[maxposEltern]){
                            maxposEltern=j;
                        }
                    }

                    //ersetze nun alte Population durch neue
                    for(int indiv=0; indiv&lt;mu;indiv++){
                        for(int day=0;day&lt;T;day++){
                            population[indiv][day]=neuePopulation[indiv][day];
                        }
                    }
                }

                //Bewertung und Dokumentation
                //Qualitätsgewinn
                besteFitnessGG=zielfkt(population[0]);
                fittest=0;
                fitsum=0;
                for(int i=1;i&lt;mu;i++){
                    fit=zielfkt(population[i]);
                    if(fit&gt;besteFitnessGG){
                        besteFitnessGG=fit;
                        fittest=i;
                    }
                    fitsum+=fit;
                }
                durchschnFitnessGG=fitsum/(float)mu;
                gewinnBesteFitness=besteFitnessGG-besteFitnessG;
                gewinnDurchschnFitness=durchschnFitnessGG-durchschnFitnessG;
                besteFitnessG=besteFitnessGG;
                durchschnFitnessG=durchschnFitnessGG;

                //Dokumentation des Fitnessverlaufs, Schreiben in
                //verschiedene Dokumentationsdateien
                BesteFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; besteFitnessG &lt;&lt;&quot;\n&quot;;
                GewinnBesteFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; gewinnBesteFitness &lt;&lt; &quot;\n&quot;;
                DurchschnFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; durchschnFitnessG &lt;&lt; &quot;\n&quot;;
                GewinnDurchschnFit &lt;&lt; g &lt;&lt; &quot; &quot;&lt;&lt; gewinnDurchschnFitness &lt;&lt; &quot;\n&quot;;
                g++;
            }//endwhile

            //gibt das Ergebnis aus
            cout &lt;&lt; &quot;Ende nach &quot; &lt;&lt; g &lt;&lt; &quot; Generationen mit durschnittlicher Fitness&quot; &lt;&lt; durchschnFitnessG &lt;&lt; &quot;\n&quot;;
            cout &lt;&lt; &quot;Bestes Individuum mit Fitness &quot; &lt;&lt;besteFitnessG&lt;&lt; &quot; ist Individuum:&quot;&lt;&lt;&quot;\n&quot;;
            for(int d=0;d&lt;T;d++){
                cout &lt;&lt; population[fittest][d] &lt;&lt; &quot; &quot;;
                BestesIndiv &lt;&lt; d &lt;&lt; &quot; &quot; &lt;&lt; population[fittest][d] &lt;&lt; &quot;\n&quot;;
            }
            BesteFit.close();
            GewinnBesteFit.close();
            DurchschnFit.close();
            GewinnDurchschnFit.close();
            BestesIndiv.close();
        }
        return(0);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1709945</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1709945</guid><dc:creator><![CDATA[ZoliTeglas]]></dc:creator><pubDate>Wed, 13 May 2009 13:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Wed, 13 May 2009 13:24:20 GMT]]></title><description><![CDATA[<p>Und deine Frage???Man Leute <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1709955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1709955</guid><dc:creator><![CDATA[Firefighter]]></dc:creator><pubDate>Wed, 13 May 2009 13:24:20 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Wed, 13 May 2009 13:25:10 GMT]]></title><description><![CDATA[<p>ZoliTeglas schrieb:</p>
<blockquote>
<p>dieser schmeisst aber komische Dinge aus, die ich nicht deuten kann.</p>
</blockquote>
<p>Wie wär's, wenn du uns diese einfach mal nennen würdest? Das macht die Sache u.U. leichter. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1709957</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1709957</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Wed, 13 May 2009 13:25:10 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Wed, 13 May 2009 13:38:14 GMT]]></title><description><![CDATA[<p>abgesehen von (_sehr_) wenigen Zeilen, wäre der Quellcode wohl im C-Unterforum besser aufgehoben...</p>
<p>Z8-Z12:<br />
2 C++-Header, 3 C-Header</p>
<p>Z16-Z35:<br />
Variablen, die wohl mindestens in ne andere Datei gehören, aber besser noch in Klassen gekapselt wären, werden mit teils total dummen namen definiert: mu, T, sigma, r, L0, ...</p>
<p>Z37:<br />
Man braucht globale Variablen, um der Fkt nich so viel Parameter (wie z.bsp. die Array-Länge übergeben zu müssen... n1)</p>
<p>eingerückt wird immermal anders...</p>
<p>zur main-fkt wollte ich eigtl gar nix sagen, weils mir die zeit nich ma wert war... aber wenn ich dann so sinnlose casts sehe (fitsum ist ein float -&gt; mu wird automatisch in float convertiert(gecastet) und das ergebnis ist auch ein float...):<br />
<code>durchschnFitnessG=fitsum/(float)mu;</code> frag ich mich doch, ob der Programmierer wirklich ein solcher ist...<br />
und die x Zeilen in der main-fkt, die nur mit Variablen-Deklarationen und zum Teil -Definitionen sind auch ma wieder C-like...</p>
<p>alles in allem ein C-Quellcode, der aufgrund von ca. 20 Zeilen nicht mehr mit nem C-Compiler zum laufen gebracht werden kann...</p>
<p>Ich glaube nicht, dass sich irgendwer hier die Mühe machen wird, ohne Fehlermeldungen Fehler zu finden - weils einfach ma mehr als nur unübersichtlich is...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1709974</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1709974</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Wed, 13 May 2009 13:38:14 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Wed, 13 May 2009 13:48:51 GMT]]></title><description><![CDATA[<p>Ich werde aus Deinem &quot;Beitrag&quot; auch nicht schlau, vermute aber mal, Du suchst Infos zu <a href="http://www.cplusplus.com/reference/clibrary/cstdlib/srand/" rel="nofollow">srand</a> und <a href="http://www.cplusplus.com/reference/clibrary/cstdlib/rand/" rel="nofollow">rand</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1709978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1709978</guid><dc:creator><![CDATA[jencas]]></dc:creator><pubDate>Wed, 13 May 2009 13:48:51 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Fri, 15 May 2009 17:31:10 GMT]]></title><description><![CDATA[<p>ZoliTeglas schrieb:</p>
<blockquote>
<p>Ich kann ihn leider nicht auf das Wesentliche reduzieren, da ich nicht weiss, was das Wesentliche ist!</p>
</blockquote>
<p>Nette Ausrede. :p</p>
<p>Wenn du eine aussagekräftige Frage stellst, brauchst du unter Umständen gar keinen Code. Wenn es um Fehler im Code geht, lokalisier diese zumindest mit einem Debugger oder mit Konsolenausgaben. Teilweise kannst du sie dann gleich selbst beheben, andernfalls postest du ein <strong>wenig</strong> Kontext. Bei Code über 100 Zeilen sind die Wahrscheinlichkeit rapide, dass sich jemand ernsthaft Zeit nimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1711181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1711181</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Fri, 15 May 2009 17:31:10 GMT</pubDate></item><item><title><![CDATA[Reply to Anfänger hat Code bekommen! on Fri, 15 May 2009 17:54:29 GMT]]></title><description><![CDATA[<p>der scheint gut zu sein</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1711190</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1711190</guid><dc:creator><![CDATA[ja doch]]></dc:creator><pubDate>Fri, 15 May 2009 17:54:29 GMT</pubDate></item></channel></rss>