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

[Lekcja 16] - Losowanie liczby z określonego zakresu

Ostatnio zmodyfikowano 2013-04-21 14:15
Autor Wiadomość
Chlorek
» 2013-03-21 20:32:40
@Pekfos - wiem o tym, ale w tym przypadku mówimy tu o czymś jednak trochę innym. Chcę pokazać to, że rand() nie wie co postawiłeś zaraz po nim, czy %5, czy %1000, zwraca niezależną od tego wartość.
Dobra Frish, łap ten "mój" sposób, który w sumie niczym się nie różni, ale ułatwia mi liczenie w dziwnych, dużych przedziałach.
C/C++
int max = 10;
int min = 5;
( rand() %( max - min ) ) + min

@Down
Przydatne czy nie, nie trzeba ustawiać na sztywno tego maksimum, gdy ustala się próg minimalny, lepiej zastąpić to działaniem.
P-79082
Frish
Temat założony przez niniejszego użytkownika
» 2013-03-21 20:43:12
Dzięki wielkie Chlorek...dostałem odpowiedzina wszystkie moje pytania jak narazie względem "rand" i widzę że można manipulować tym wzorem, można tworzyć nowe wzory pod rand i nie jest to sztywna reguła tylko wynikająca z logiki matematycznej. Teraz już mogę śmiało te słowa powtórzyć za Tobą. A Ty wprowadziłeś zmienne do tego wzoru i na pewno musi być to przydatne, będe też korzystał z Twojego rozwiązania.
P-79086
pekfos
» 2013-03-21 20:51:04
C/C++
int max = 10;
int min = 5;
( rand() %( max - min ) ) + min
Wtedy przedział jest od 5 do 9 ;)
P-79088
Chlorek
» 2013-03-21 20:54:44
O to chodzi pekfos, to daje 5 liczb: 5, 6, 7, 8, 9.
Dla porównania podając tylko 'max' uzyskuje się więcej niż maks. To żadna zmiana, ale nie trzeba liczyć w pamięci.
P-79090
pekfos
» 2013-03-21 20:57:48
który w sumie niczym się nie różni
Jak się nie różni, to powinien dawać liczby w przedziale [min, max].
P-79092
Chlorek
» 2013-03-21 21:07:38
Właśnie to mam na celu - proste określenie przedziału. Nie rozumiem do czego zmierzasz pekfos.
P-79095
pekfos
» 2013-03-21 22:18:26
Do tego, że [5, 10] to 5, 6, 7, 8, 9, 10. Minimalna 5, maksymalna 10. Skoro zaliczasz minimum do przedziału obustronnie domkniętego, to czemu pomijasz maksimum?
P-79101
Chlorek
» 2013-03-22 16:05:45
Ah, teraz Cię rozumiem. Wiem, że to się nie wlicza, ale kto powiedział, że się wlicza? Poza tym, tak samo jest w przypadku
rand()%X
, jeśli X wynosi 10 to otrzymasz [0,9], czyli 10 liczb. Tu wychodzi na to samo. Po prostu chcę mieć prosty zarys przedziału [min,max), skoro wiem że max się nie wlicza to nie ma tu dużego problemu.
P-79128
1 2 « 3 » 4
Poprzednia strona Strona 3 z 4 Następna strona