Losowanie
Ostatnio zmodyfikowano 2013-11-23 18:30
mgrD Temat założony przez niniejszego użytkownika |
Losowanie » 2013-11-23 18:12:56 Witam, mam pewien kłopot - mianowicie kod ten działa dobrze: int hej =( rand() % 10 + 48 ); std::string deb +=( char ) hej;
ale gdy chciałem go skrócić ciągle losuje te same liczby(jak zaznacze, że ma wylosować 3 liczby to zawsze są to 174, jak ma wylosować 4 liczby to jest to 1740, jak pięć to 17409 itp :> std::string deb +=( char )( rand() % 10 + 48 );
Zapewne nie można tego tak skrócić ale zapytać można. |
|
Buby |
» 2013-11-23 18:18:11 Porównaj sobie te dwa kody i zobacz co jest nie tak. int wylosowana_liczba =( rand() % ile_liczb_w_przedziale ) + startowa_liczba; A to twój kod: std::string deb +=( char )( rand() % 10 + 48 ); U Ciebie wychodzi na to, że program, ma 50 liczb w przedziale bez wartości startowej - być może to jest przyczyną. A wywołałeś na początku programu srand( time( NULL ) ); ? Ta linijka odpowiada za pseudo losowość - losowanie zaczyna od punktu aktualnego czasu. W innym wypadku wyniki losowania będą za każdym razem takie same. |
|
mgrD Temat założony przez niniejszego użytkownika |
» 2013-11-23 18:24:31 |
|
kynol |
» 2013-11-23 18:30:02 to dodaj #include <ctime>, pozniej w funkcji main(); dodaj srand(time(NULL)); i ustaw nawiasy w ten sposob: std::string deb +=( char )( rand() % 10 ) + 48;
Mysle ze teraz powinno dzialac:) |
|
mgrD Temat założony przez niniejszego użytkownika |
» 2013-11-23 18:30:51 Do tego mojego kodu dodałem tylko srand i działa pięknie. |
|
« 1 » |