Witam, potrzebuję jakiegoś zapisu w c który pozwoli mi wylosować jakąkolwiek liczbę (zmiennoprzecinkową też)
Jak to uzyskać. Próbowałem tak:
liczba = (min + rand() * (max-min))
ale zwraca mi to głupoty jakieś ;/
0
0
Wylosuj liczbę między 1 a 100 i podziel przez sto?
I przede wszystkim nie baw się w programowanie przez permutacje.
0
na widowsie jest i tak niemożliwe osiągnięcie rzeczywistej losowości, rand() nie jest wcale rand nawet jak go zseedujesz, równie dobrze możesz sobie tam wpisać coś z palca
0
min+rand()*(max-min)/RAND_MAX;
(min lub max muszą być zmiennoprzecinkowe).
0
#include <iostream>
#include <random>
#include <vector>
int main()
{
for(int i = 0 ; i < 10 ; ++i) {
std::random_device rd;
std::uniform_int_distribution<int> uniform_dist(0, 1);
std::default_random_engine el(rd());
int playTheGame0 = 0, watchGNVids1 = 0;
int times = 10000;
while(--times) {
switch(uniform_dist(el)) {
case 0:
++playTheGame0;
break;
case 1:
++watchGNVids1;
break;
default:
std::cout << "Something went really wrong\n";
break;
}
}
if(playTheGame0 > watchGNVids1)
std::cout << "PLAY THE GAME !!! " << playTheGame0 << " hits!\n";
else if(playTheGame0 < watchGNVids1)
std::cout << "WATCH GOING NATIVE !!! " << watchGNVids1 << " hits!\n";
else
std::cout << "DO NOTHING\n";
playTheGame0 = 0;
watchGNVids1 = 0;
}
return 0;
}
output na mingw
http://i.imgur.com/8WMiURE.png
nie zaprzeczysz, że dałem tutaj wiele szans na wykazanie się kompilatorowi, ale on nic sobie z tego nie robi
zauważ też, że używam dużo nowocześniejszego toola od rand()
to jest temat rzeka, nie chce mi się kłócić już :D są mistrzostwa w lola