Zufallsfunktion immer gleich?
Hallo!
Ich arbeite gerade an einer "Zufallsfunktion" in C++.
Aufgabe ist, dass nur Einsen und Nullen in einer "zufälligen" Reihenfolge ausgegeben werden sollen. Es soll der prozentuale Anteil der Ausgabe bestimmt werden können (in meinem Programmcode aktuell 50%, also ausgeglichen).
Mein Problem ist noch, dass die Ausgabe immer gleich aussieht (nur wenn ich die prozentuale Verteilung nicht ändere natürlich).
Ich glaube ich müsste noch ctime includen und srand nutzen um eine scheinbare Zufallsfunktion (mit der Zeit gekoppelt) zu bekommen, bräuchte jetzt aber mal eure Hilfe.
Hier der bisherige Code:
Code:
#include<iostream>
using namespace std;
// Prototyp Zufallsfunktion
int zufall(int p);
// Hauptprogramm
int main()
{
int z;
for (int i=1; i<=100; i++)
{
z = zufall(50);
cout << z;
}
return 0;
}
// Zufallsfunktion
int zufall(int p){
float g=(RAND_MAX*p)/100.0;
if(rand()<g)
return 0;
else
return 1;
}
Gruß Max
edit: rand() durch srand(time(0)) zu ersetzen und noch <ctime> einzubinden bringt leider Fehler mit sich.
Code:
#include<iostream>
#include<ctime>
using namespace std;
// Prototyp Zufallsfunktion
int zufall(int p);
// Hauptprogramm
int main()
{
int z;
for (int i=1; i<=100; i++)
{
z = zufall(50);
cout << z;
}
return 0;
}
// Zufallsfunktion
int zufall(int p){
float g=(RAND_MAX*p)/100.0;
if(srand(time(0))<g)
return 0;
else
return 1;
}