Per Zufallsfunktion bestimmte Zahlen erhalten

Hallo,
ich möchte für mein Programm Zufallszahlen generieren lassen, die allerdings entweder 0, 5, 10, 15 ,20 … und so weiter sein sollen. Also genau diese Zahlen und nichts dazwischen. Nun meine Frage ist das mit der Zufallsfunktion rand() zu bewerkstelligen.

Mit freundlichen Grüßen.

Ich kann zwar kein C aber ich kann Mathe… du musst einfach die zahl mal 5 nehmen dann haste es

Hallo Fragewurm,

ich möchte für mein Programm Zufallszahlen generieren lassen,
die allerdings entweder 0, 5, 10, 15 ,20 … und so weiter
sein sollen. Also genau diese Zahlen und nichts dazwischen.
Nun meine Frage ist das mit der Zufallsfunktion rand() zu
bewerkstelligen.

rand() liefert eine Ganzzahl zwischen 0 und RAND_MAX.

RAND_MAX ist eine compilerspezifische Konstante und sollte in „stdlib.h“ zu finden sein.

MfG Peter(TOO)

Hallo

Man kann wie es doeneraffe schon gesagt hat das dann einfach mal 5 nehmen. Das sähe dann bei mir so aus

#include
#include

using namespace std;

int main()
{
srand(time(NULL)); //damit nicht immer die Gleichen Zahlen rauskommen
int g;
int e;
g = rand()% 100; // maximalgrenze für die Zahl von rand()
e = g * 5;
cout

Hallo,

mit rand oder srand (o.ä) wirst Du das allein nicht hinbekommen, aber wie wäre es, wenn Du Dir eine Zufallszahl zwischen 0 und n (hier 10) ermittelst und dann diese in eine Schleife aufaddierst und ausgibst:

cMyRandMaxP1 = 11; // Rand auf 10 Maximieren
cMax = 100; // Max. 100 Zahlen ausgeben

z = srand( time( NULL )) % cMyRandMaxP1;
o = z;

for ( i = 0 ; i 

Der Code ist natürlich nur exemplarisch (Variabledefinition etc. muss noch erfolgen.

Gruß
 Volkmar


> <small>[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]</small>

Hallo UsYer,

ich möchte für mein Programm Zufallszahlen generieren lassen,
die allerdings entweder 0, 5, 10, 15 ,20 … und so weiter
sein sollen. Also genau diese Zahlen und nichts dazwischen.
Nun meine Frage ist das mit der Zufallsfunktion rand() zu
bewerkstelligen.

Du könntest, zusätzlich zu den bereits
genannten richtigen Varianten, auch noch
eine Variante vewenden, in der Du die
Zahlen, aus denen Du auswählst, explizit
vorgibst, also etwa so:

#include 
#include 
using namespace std;

 typedef 
 unsigned int /\* hier den Typ der Zahlen angeben \*/
 Meine;

 Meine Zahlen[] = { 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 };


 Meine Zufallsfunktion(void)
 {
 size\_t nelements = sizeof(Zahlen)/sizeof(\*Zahlen);
 size\_t index = rand() % (nelements-1);
 return Zahlen[index];
 }


 int main()
{
 cout Grüße

CMБ

Vielen dank für die ganzen Lösungsmöglichkeiten. Ich werde mich jetzt mal ranmachen und sie ausprobieren

Danke für die Hilfe
So es hat geklappt. Ich habe es nach dem Vorschlag von Semjon Michailowitsch gemacht. Hier der noch etwas veränderte code. ich musste noch eine rand() Funktion einbauen, da nach jedem programm start immer die gleichen Zahlen gekommen sind.

#include 
#include 
using namespace std;


//Zufallsfunktion aus dem wer-weis-was Forum zur Erstellung
//von bestimmten Zufallszahlen.
 typedef 
 unsigned int /\* hier den Typ der Zahlen angeben \*/
 Meine;

 Meine Zahlen[] = { 0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50 };


 Meine Zufallsfunktion(void)
 {
 size\_t nelements = sizeof(Zahlen)/sizeof(\*Zahlen);
 size\_t index = rand() % (nelements-1);
 return Zahlen[index];
 }


 int main()
{
 srand( (unsigned) time(NULL) ) ; //Start der Zufallsfunktion, für unterschiedliche Zahlen
 int zufallZ = 1 + ( rand() % 49 ) ;
 cout 
So klappt alles und es kommen immer unterschiedliche Zahlen dabei raus.
Nochmal vielen Dank für die Lösungsvorschläge.
Mit freundlichen Grüßen.