Jag skulle vilja skapa en funktion som slumpar fram ett flyttal (float) mellan -1.0 och 1.0. Hur gör man det på bästa sätt egentligen? Det finns en massa exempel med positiva heltal, men inte många med flyttal och negativa tal. Ett exempel ser ut så här: Iden är "min + (max-min)*rand()/RAND_MAX", och det funkar oavsett om du har flyttal eller heltal. Alltså: Jaha! Ska prova att mixtra med det där.Random float med intervall
<code>
#include <cstdlib>
#include <ctime>
#include <iostream>
using std::cout;
using std::endl;
int main()
{
float x;
// Set evil seed (initial seed)
srand( (unsigned)time( NULL ) );
for (int i = 0; i < 5; i++) {
x = (float) rand()/RAND_MAX;
cout << x << endl;
}
return 0;
}
</code>
(exemplet är hämtat från http://cplus.about.com/library/weekly/aa041303c.htm)
Exemplet skriver ut några slumpade flyttal. Men är det bra att använda denna metod med typkonvertering, eller finns det kanske något bibliotek att ladda ner? Hur skulle ni göra?
/PeterSv: Random float med intervall
#include <cstdlib>
#include <ctime>
#include <iostream>
int main()
{
using std::cout;
using std::endl;
float x;
// Set evil seed (initial seed)
srand( (unsigned)time( NULL ) );
for (int i = 0; i < 5; i++) {
x = -1+(2*(float(rand())/RAND_MAX));
cout << x << endl;
}
return 0;
} Sv: Random float med intervall
Tackar så mycket Niklas, du svarar alltid på mina inlägg :)