Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Lekcja 17] losowanie - problem i pytanie

Ostatnio zmodyfikowano 2014-01-31 05:12
Autor Wiadomość
hhh
Temat założony przez niniejszego użytkownika
[Lekcja 17] losowanie - problem i pytanie
» 2014-01-29 23:58:12
Witam, program nie działa tak jak powinien, w dodatku funkcja rand tworzy dziwne przewidywalne losowanie, np. cały czas wzrastające.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using std::cout;
using std::cin;
using std::endl;


int draw( int start, int stop )
{
    int a =( rand() % stop ) + start;
    return a;
   
}

int main()
{
    srand( time( NULL ) );
    int start;
    cout << "Type start point: ";
    cin >> start;
    int stop;
    cout << "Type end point: ";
    cin >> stop;
    int counter = 1120;
    do
    {
        cout << draw( start, stop ) << endl;
        counter--;
    } while( counter > 0 );
   
    cin.sync();
    cin.get();
   
    return 0;
}

Jak podaje przedział, to wychodzą liczby z poza przedziału
P-103557
stryku
» 2014-01-30 01:20:31
jeżeli chcesz z przedziału to takie coś się robi:
C/C++
int a = rand() %( stop - start ) + start;

z tym przewidywalnym losowaniem to raczej nie możliwe bo wszystko ok jest
P-103558
hhh
Temat założony przez niniejszego użytkownika
» 2014-01-30 10:29:35
Dzięki, tylko jeszcze przy modulo  trzeba dodać 1
return rand() %( stop - start + 1 ) + start;
P-103563
stryku
» 2014-01-31 05:12:35
No tak, zapomniałem. Grunt, że ogarnąłeś :)
P-103667
« 1 »
  Strona 1 z 1