bitte hilfeeeeee ;((
Von: , Frage gestellt am So, 22. Apr 2001
Hi alle,
ich hab ein sehr grosses problem...ich hoffe es gibt jemand der mir helfen kann...sonst gehe ich total unter...
ich muss ein programm bist mittwoch schreiben es geht darum:
Alle 7 Millisekunden treffen sich n Reiter in Stochastika, um ihr berühmtes Polyell auszutragen. Sie reiten dabei im Kreis. Der Schwächste Reiter(Nr.1) beginnt und versucht, seinen Vordermann(Nr.2) aus dem Sattel zu stoßen. Danach ist Nr.2 an der Reihe, sofern er noch im Sattel sitzt- sonst dessen Vordermann Nr.3, usw. Der Vordermann non Nr. n ist wieder Nr.1.
Das Turnier ist zu Ende, wenn nur noch ein Reiter im Sattel sitzt.
Die Wahrscheinlichkeit, dass Reiter Nr. 1 seinen Vordermann trifft und aus dem Sattel stößt, sei p(1), die Wahrscheinlichkeit, dass Reiter Nr.2 seinen Vordermann trifft und aus dem Sattel stößt, sei p(2) usw.
Es gilt immer p(1)<p(2)<p(3)...<p(n).
1. Ich muss ein Programm, dass als Eingabe die Anzahl n der Reiter und ihre Aus-dem-Sattel-Stoß-Wahrscheinlichkeiten p(1) bis p(n) verlangt, dann das Turnier durchführt und den Turniersieger nennt. Ein Protokoll soll den Turnierverlauf etwa wie folgt wiedergeben (n=4):
Reiter 1 trifft nicht
Reiter 2 trifft nicht
Reiter 3 stößt Reiter 4 aus dem Sattel
Reiter 1 trifft nicht
Reiter 2 stößt Reiter 3 aus dem Sattel
Reiter 1 trifft nicht
Reiter 2 stößt Reiter 1 aus dem Sattel
Sieger ist Reiter 2.
2. Man ermittelt für n Reiter bei m Turnieren die Anzahl der Turniersiege jedes Reiters bei unveränderten Aus-dem-Sattel-Stoß-Wahrscheinlichkeiten. Die Protokollierung der Turnierverläufe wie bei 1. ist hier nicht erforderlich.
Eingabe:
1. Reiterzahl als natürliche Zahl, Aus-dem-Sattel-Stoß-Wahrscheinlichkeiten als reelle Zahlen.
2. Wie 1. und Anzahl der Turniere.
Ausgabe:
1. Protokoll des Turnierverlaufs.
2. Anzahl der Turniersiege jedes Reiters.
Abbruch:
Das Programm bricht ab, falls der Nutzer keine neue Berechnung wünscht.
Datentypen:
Man speichert die mitspielenden Reiter in eine dynamisch erzeugte einfach verkettete geschlossene Liste von Strukturen mit seiner Aus-dem-Sattel-Stoß-Wahrscheinlichkeit, dem aktuellen Sitzzustand (0- nicht im Sattel, 1- im Sattel) und der Anzahl der gewonnenen Turniere als Daten ab.
Funktionen:
Eingabe der Ritterzahl und Aus-dem-Sattel-Stoß-Wahrscheinlichkeit, Erzeugen und Freigabe der liste, Starsituation, Berechnung der neuen Situation, Ausgabe dieser für den Turnierverlauf, Siegerermittlung und statistische Auswertung sollen als getrennte Funktionen programmiert werden.
Des Weiteren sammelt man in einem gesonderten Modul <io.h> Ein- und Ausgabe-Funktionen. Solche Funktionen sollen bei der Eingabe
einer natürlichen Zahlen bzw. bei der Eingabe einer reellen Zahl aus einem vorgegebenen Bereich absichern, dass Fehleingaben nicht zum Absturz des Programms führen. In der Standardbibliothek <stdlib.h> findet man Funktionen zur Speicherverwaltung und entsprechende Umwandlungsfunktionen von einer Zeichenketten in verschiedene Zahlentypen.
Die typischen Listenfunktionen, wie erzeugen und Freigeben einer Liste, sammelt man in einem Modul <list.h>.
Um den Aus-dem-Sattel-Stoß-Erfolg der Ritter im spiel entsprechend der Wahrscheinlichkeiten zufällig zu gestalten, benötigt man Zufallszahlen. Die Funktion int rand( void); aus <stdlib.h> liefert Pseudo-Zufallszahlen zwischen 0 und RAND_MAX. die Zufallsfolge, die durch aufeinanderfolgende Aufrufe von rand geliefert wird, ist reproduzierbar. Mit der Funktion void srand( unsigned int Startwert); kann festgelegt werden, mit welchem Startwert (sonst: 1) die Zufallfolge berechnet werden soll. Um den startwert variabel zu halten, empfiehlt es sich, diesen aus der aktuellen Zeit zu berechnen. Dazu ist der Header #include<time.h> einzubinden und mit srand(( int) time(( time_t) NULL)); die Startzeit zu setzen.
1. Man ermittelt in 5 Testserien für 10 Reiter den Turniersieger, wobei p(1)= 25%, p(2)= 30%, p(3)= 35%, ..., p(n)= 70%. Man vergleicht die Ergebnisse.
2. Man ermittelt für diese 10 Reiter bei 10000 Turnieren die Anzahl der Turniersiege jedes Reiters bei unveränderten Aus-dem-Sattel-Stoß-Wahrscheinlichkeit.
MfG
Dirk
