losowanie ilości zdarzeń na godzinę, dana ich ilość na

Definicja klasyczna. Prawdopodobieństwo warunkowe i całkowite. Zmienne losowe i ich parametry. Niezależność. Prawa wielkich liczb oraz centralne twierdzenia graniczne i ich zastosowania.
ja

losowanie ilości zdarzeń na godzinę, dana ich ilość na

Post autor: ja »

Piszę program komputerowy i mam następujący problem: mam daną ilość zdarzeń, które mają nastąpić w ciągu doby. Co godzinę chcę losować ilość zdarzeń dla aktualnej godziny.

W tej chwili robię to w ten sposób, że losowania wykonuję co dobę. Losuję liczbę z przedziału od 0 do 23 tyle razy, ile w sumie ma być zdarzeń dla całej doby. Wyniki zapisuję i jeśli np dwa razy wypadło 3, to o godzinie 3 w nocy nastąpią 2 zdarzenia.

Problem polega na tym, że rozwiązanie które stosuję wykonuje losowania co dobę, a ja chciałbym wiedzieć, czy dałoby się zrobić tak, żeby wykonywać je co godzinę. Oszczędziłoby mi to sporo problemów.

Mogę oczywiście wykonywać co godzinę tyle losowań, ile ma być w sumie zdarzeń w ciągu doby, po czym zapisywać tylko wyniki odpowiadające aktualnej godzinie i na końcu po prostu zmniejszyć ilość zdarzeń w ciągu doby o ilość tych wyników. Jednak jest to raczej rozwiązanie nieeleganckie, wykonuje przy tym, w najgorszym razie, 24 razy więcej losowań, niż przy użyciu metody, którą obecnie stosuję.

Mam nadzieję, że w miarę czytelnie napisałem, jeśli nie, proszę o wskazanie nieścisłości.
ja
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 30 paź 2005, o 02:11
Płeć: Mężczyzna
Lokalizacja: Czarnków

losowanie ilości zdarzeń na godzinę, dana ich ilość na

Post autor: ja »

przepraszam za zaśmiecanie forum pisaniem posta pod postem, ale jako gość nie mogłem edytować swojego tekstu ani dodać odpowiedzi, a sprawa jest dla mnie dość istotna...

udało mi się uprościć zadanie, choć nie jestem pewien, czy mój tok myślenia jest prawidłowy... może od razu podam przykład...

mogą wystąpić dwa zdarzenia... prawdopodobieństwo wystąpienia pierwszego wynosi 575/576, a drugiego 1/576... i teraz losuję liczbę od 1 do 576 i sprawdzam które zdarzenie miało miejsce prostym równaniem...

numer_zdarzenia = zmienna_losowa_od_1_do_576 / 576

i teraz wszystko się zgadza... dla zmienna_losowa_od_1_do_576 mniejszej niż 576 numer_zdarzenia wynosi 0, a dla równej 576 wynosi 1...

problem w tym, że kiedy zdarzeń mam trzy, cztery i więcej, nie potrafię sklecić takiego równania... czy jest na to jakaś metoda? czy to w ogóle możliwe?
Fibik
Użytkownik
Użytkownik
Posty: 953
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 74 razy

losowanie ilości zdarzeń na godzinę, dana ich ilość na

Post autor: Fibik »

Jeśli masz n zdarzeń o prawd.:
\(\displaystyle{ p_1, p_2, ... p_n}\)

Tworzymy n przedziałów:
\(\displaystyle{ }\)
ja
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 30 paź 2005, o 02:11
Płeć: Mężczyzna
Lokalizacja: Czarnków

losowanie ilości zdarzeń na godzinę, dana ich ilość na

Post autor: ja »

no tak, ja sprawdzę które zdarzenie zaszło, ale komputer ma z tym większe problemy... chodzi mi o coś w rodzaju wzoru... czy w ogóle coś takiego istnieje? chciałbym ułożyć równanie takie jak w moim poprzednim poście, ale dla większej ilości zdarzeń...
Fibik
Użytkownik
Użytkownik
Posty: 953
Rejestracja: 27 wrz 2005, o 22:56
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 11 razy
Pomógł: 74 razy

losowanie ilości zdarzeń na godzinę, dana ich ilość na

Post autor: Fibik »

To jest właśnie uogólnienie tego równania z dwoma przypadkami na dowolną liczbę przypadków.
Komputer nie będzie miał z tym żadnego problemu - trzeba tylko to zaprogramować:

sum = suma(p); // suma p dla i od 1 do n
q = los(sum); // losujemy liczbę od 0 do sum

// teraz szukamy numeru zdarzenia
part_sum = 0; nr_zdarz = 0;
repeat
inc(nr_zdarz);
inc(part_sum, p[nr_zdarz]);
until part_sum >= q;

-----------
Mamy wynik w zmiennej nr_zdarz.
ja
Użytkownik
Użytkownik
Posty: 3
Rejestracja: 30 paź 2005, o 02:11
Płeć: Mężczyzna
Lokalizacja: Czarnków

losowanie ilości zdarzeń na godzinę, dana ich ilość na

Post autor: ja »

miałem nadzieję na jedno proste równanie, ale z tego co piszesz nie ma takiego wzoru... ja tam się nie znam, pozostaje mi zaufać Tobie i zrobić w pętli... dzięki...
ODPOWIEDZ