Eine Zufallszahl einem Index einer Matrix zuweisen



  • Hallo,

    ich programmier z.z. eine Art Simulation. Auf einem zweidimensionalem Feld (hier eine Matrix), lass ich auf ein Feldelement 100 Hasen los. Mit einer Wahrscheinlichkeit gehen 10 dieser Hasen auf ein benachbartes Feld (jedes Feld hat 8 benachbarte Felder, abgesehen vom Rand).

    Es soll also eine Matrix mit den Elementen aij sein, sagen wir von der Größe 100x100. Ich bin zwar ein Anfänger, aber dies ist sehr einfach.

    Nun hab ich mir auch ein Würfel mit rand, srand und time_t gebastelt, der von 1-8 zufällig würfelt.

    Mein Problem ist jetzt, wie ich diese zufällige Zahlen den i und j Indizes meines Matrixelementes zuweise.

    Ich bin recht neu was Programmieren allg. angeht - wie ihr sicherlich gemerkt habt. Hoffe ihr könnt mir helfen!

    lg

    euer Ollowain


  • Mod

    Dia Nachbarfelder des Feldes (i,j) sind (i-1,j-1), (i-1,j), (i-1,j+1), (i,j-1),(i,j+1), (i+1,j-1), (i+1,j), (i+1,j+1).



  • Ok, das wäre nun auch geschafft.

    Habt ihr noch ein Tipp, wie man ein Rechenschritt in z.B. einer Sekunde (oder einem x-beliebigen Zeitintervall) durchlaufen lässt?



  • ich will auf einen häufigen Fehler hinweisen, denn du sprachst von einer Würfel-Funktion:
    srand sollte nur einmal zu Beginn des Programms aufgerufen werden, sowas wäre falsch:

    int zufallszahl()
    {
        srand//...
        return rand() % 8 + 1
    }
    


  • Also ich hab jetzt als Würfel ( von 1-8 , 20 mal würfeln) sowas:

    int main(void)
      {
        int i;
        time_t t;
    
        time(&t);
        srand((unsigned int)t);
    
    for ( i=0; i<20; i++ )
        cout << (rand() % 8 + 1) << endl;
    
    return 0;
      }
    

    Diesen Würfel weise ich nun den ai,j der Matrix A zu.
    (Ich hab gerade gemerkt, dass ich die Zuweisung nicht hingekriegt hab, aber gut, das wird im Laufe des Tages..)

    Nun sollen die erwähnten 10 der 100 Hasen auf einem Feld mit einer gewissen Wahrscheinlichkeit von einem Feld zu einem Anderen wandern, so dass z.B. auf dem Feld a2,3 10 Hasen leben und auf dem Ursprungsfeld a3,3 nur noch 90.

    Meine Idee ist wieder mit dem Würfel zu arbeiten. Wenn die Wahrscheinlichkeit 10% bei jedem Schritt ist, dass die 10 Hasen auf Wanderung gehen, dann lass ich von 1-10 Würfeln.
    Bei z.B. der Zahl 5 (Wahrscheinlichkeit 10%) laufen die Hasen.

    Aber all die Schritte sollen nicht innerhalb von millisekunden ausgeführt werden, sondern in einem von mir bestimmten Zeitintervall. Ich hab bisher nichts dazu finden können. Könnt ihr mir da was empfehlen?


Anmelden zum Antworten