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 19:55:10
Frish, przeczytaj mój pierwszy post w tym temacie, tam to wyjaśniłem.
Gdybyś jeszcze nie "załapał" to rand() zawsze zwraca sobie liczbę jaką chce, niczym nie limitowaną, to te dalsze obliczenia dopiero sprawiają, że ograniczasz wynik.
P-79056
Frish
Temat założony przez niniejszego użytkownika
» 2013-03-21 20:03:41
"Podzielenie wylosowanej liczby przez 'największą liczbę jaką chcesz uzyskać', oznacza że reszta z takiego dzielenia nie przekroczy tej maksymalnej liczby" interesuje mnie wyjaśnienie tych slow...bo ja rozumiem wszystko co piszecie...ale tego jednego nie moge pojąc..czym jest ten "rand" w tej formule rand() % 50. jaką rolę tam spełania? losuje liczbę z przedziału 50 liczbowego...ale dlaczego, skąd wie że ma losowac z przedziału 50 liczbowego?
P-79064
Frish
Temat założony przez niniejszego użytkownika
» 2013-03-21 20:07:46
No właśnie chodzi mi o to jak to się dzieje że rand rozpoznaje że jest ograniczony do przedziału 50 liczbowego.





SeaMonster131: Forum jest nie tylko dla Ciebie, ale też dla osób mających podobny problem. Po drugie na forum jest taka opcja jak "Edytuj", żeby nie pisać postu pod postem.
P-79067
Chlorek
» 2013-03-21 20:09:00
Operator % zwraca resztę z dzielenia. Tak więc imaginuj i...
rand() - losuje liczbę dla przykładu 100
...potem jest ten magiczny %5 - 100 jest dzielone na 5 co daje 20, reszta 0
...inny scenariusz - magiczne %6 - 100 jest dzielone na 6 co daje 16, reszta 4

Czyli jak to w matematyce, reszta nigdy nie dojdzie do tej liczby, bo wtedy wyszła by już całość, wówczas reszta jest 0.

#Edit
Nie pomagam prywatnie, poza tym nie posiadam 'gie-gie'.
P-79068
Frish
Temat założony przez niniejszego użytkownika
» 2013-03-21 20:14:48
jaki wzór tu stosowałeś napisz mi ten cały wzór z podstawionymi liczbami rand()% x + y. do tego przykladu co wcześniej podałeś i już powinno być dla mnie jasne.

czyli chodzi o to że dzieląc przez 6 jakąkolwiek liczbę wylosowana przez "rand" nigdy reszta nie będzie większa niż 6...poprostu teraz odblokowałem się...dopiero zrozumialem.


dzięki wielkie za pomoc i cierpliwość.
P-79069
Chlorek
» 2013-03-21 20:22:39
Właśnie w ramach ćwiczeń i logicznego myślenia powinieneś sobie z takimi problemami radzić, a przede wszystkim starać sobie radzić - to uczy rozwiązywania problemów, wiadomo prościej zapytać o rozwiązanie. Ale wartościowsze jest myślenie samemu, ewentualnie ze wskazówkami. Powiem tyle:
Wyobraź sobie, że w miejscu rand() stoi liczba 100 (dla przykładu taka została wylosowana). Teraz dzielisz ją przez 5. Otrzymujesz 20, a reszta 0. Ale ty chcesz by minimalną liczbą było 2, więc dodajesz to wyniku 2, wtedy okazuje się, że przedział to 2-6. Mimo, że początkowo chciałeś uzyskać jako maximum liczbę 5. Co trzeba zrobić z liczbą 5, by dostosować ją do dodawania liczby 2 na końcu?
P-79072
pekfos
» 2013-03-21 20:27:03
Gdybyś jeszcze nie "załapał" to rand() zawsze zwraca sobie liczbę jaką chce, niczym nie limitowaną
Ekhem.. RAND_MAX.
P-79077
Frish
Temat założony przez niniejszego użytkownika
» 2013-03-21 20:28:45
też tak sądze, bo ja jestem fanem logiki i właśnie główkowania a nie gotowców. Poprostu coś mi nie podeszło i nie mogłem zrozumieć tego rand()%...wyjaśniliście mi teraz juz wszystko jasne. Dzięki wielkie.
P-79078
1 « 2 » 3 4
Poprzednia strona Strona 2 z 4 Następna strona