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. |
|
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? |
|
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. |
|
|
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'. |
|
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ść. |
|
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? |
|
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. |
|
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. |
|
1 « 2 » 3 4 |