Seite 2 von 2

Re: Zufallsgenerator in C für 0-2

Verfasst: Sa Jan 16, 2021 10:18 am
von nufan
Digitalsheep hat geschrieben:
Fr Jan 15, 2021 11:18 pm
@nufan: Gerne befasse ich mich zu einem späteren Zeitpunkt mit Linux in einer vollen Installation, allerdings will ich mich jetzt auf C fokussieren und dann auf C++
Könnt ihr mir eine anfängerfreundliche Version empfehlen um sie vom Stick laufen zu lassen? Arch Linux erscheint mir da sehr aufwändig für den Einstieg

@moderator: soll ich diesen Beitrag, da er sich ja jetzt vom ursprünglichen Thema abgespalten hat eventuell in ein neues Thema schieben?
Ich würde dir für den Anfang eher Ubuntu oder Fedora empfehlen. Falls du noch Fragen dazu hast, eröffne bitte ein neues Thema.
Digitalsheep hat geschrieben:
Sa Jan 16, 2021 12:59 am
Folgende Seite sagt Folgendes: https://www.c-howto.de/tutorial/uebungen/teil-1/

"... deshalb muss auch die time.h eingebunden werden. Folgende Zeilen erstellen zwei Zufallszahlen zwischen -1 und 10 (also von 0-9)."

srand(time(NULL));
int zahl1 = rand() % 10;
int zahl2 = rand() % 10;

Mich hat die die Angabe -1 und 10 irritiert und irgendwann bin ich davon ausgegangen, dass der Autor wahrscheinlich eine null unterschlagen hat.
Also -10 bis 10
Ferner kann ich den Schluss dass sich aus -1 bis 10 also 0-9 ergibt nicht nachvollziehen. 1 bis 10 als 0-9 zu verstehen wäre nicht ein Problem
Die Aussage kann ich auch nicht nachvollziehen. In den beiden Zeilen ergeben sich Zahlen zwischen 0 und 9 (inklusive).
https://www.proggen.org/doku.php?id=c:lib:stdlib:rand
Digitalsheep hat geschrieben:
Sa Jan 16, 2021 3:05 am
Mittlerweile teste ich bei srand(time(0))

x= rand(%10),
y = rand(x%3) //und wiederum ein direktes
z = rand(%3)
Sollen die Aufrufe eigentlich srand() sein? rand() akzeptiert keine Parameter.
Digitalsheep hat geschrieben:
Sa Jan 16, 2021 3:05 am
Zur statistischen Erfassung versuche ich verschiedene Konstrukte.
z.b. möchte ich erfassen wie oft X verschiedene Werte{0-9} annimmt
...
int x
int xi[10] // Variablen global
...
switch(x){ //switch nach ermittlung x,y,z
case x:{ xi[x] +1;
}
}
...

funktioniert leider nicht.
Habt ihr einen Tip?
Also eine Möglichkeit einen dynamisches Case statt n cases zu definieren, und ob es einen Weg gibt den Indize eines Arrays auch variabel zu gestalten?
Wie wäre es damit?

Code: Alles auswählen

int xi[10] = {0};
int x = rand() % 10;
xi[x]++;
Digitalsheep hat geschrieben:
Sa Jan 16, 2021 3:05 am
@moderator: Wie markiere ich selber einen Codeblock im Forumsbeitrag? HTML-Tag?
Du musst den Text zwischen Code-Tags setzen. Im Editor hast du oben einen </> Button, der die entsprechenden Tags einfügt.

Re: Zufallsgenerator in C für 0-2

Verfasst: Sa Jan 16, 2021 5:34 pm
von Digitalsheep
nufan hat geschrieben: Sollen die Aufrufe eigentlich srand() sein? rand() akzeptiert keine Parameter.
Also da war ich voll ziemlich übermüde... hätte natürlich heissen sollen rand()%10, rand()(x%3) und rand()%3.
So hab ich das natürlich in meinem Code auch.

Re: Zufallsgenerator in C für 0-2

Verfasst: Sa Jan 16, 2021 6:16 pm
von Digitalsheep
nufan hat geschrieben:
Sa Jan 16, 2021 10:18 am
Wie wäre es damit?

Code: Alles auswählen

int xi[10] = {0};
int x = rand() % 10;
xi[x]++;
Funktioniert!!
war sogar mein zweiter Ansatz, scheiterte am Fehlen von ={0}.
Werde euer Tutorial nochmal von vorne durchackern.
Hatte zunächst mit C-A bis Z begonnen, aber euer Tutorial scheint mir besser geeignet um hands-on zu gehen.