-
Path: news-archive.icm.edu.pl!news.icm.edu.pl!wsisiz.edu.pl!newsfeed2.atman.pl!newsfe
ed.atman.pl!.POSTED!not-for-mail
From: bartekltg <b...@g...com>
Newsgroups: pl.comp.programming
Subject: Re: dalsza optymalizacja
Date: Mon, 02 Apr 2012 14:58:08 +0200
Organization: ATMAN - ATM S.A.
Lines: 87
Message-ID: <jlc7p2$ene$1@node2.news.atman.pl>
References: <jl73ie$b6f$1@inews.gazeta.pl> <jl9aaf$326$1@inews.gazeta.pl>
<jl9al3$ee7$1@inews.gazeta.pl> <jl9dfl$a80$1@inews.gazeta.pl>
<jl9e7f$epj$1@node2.news.atman.pl> <jl9ftm$j00$1@inews.gazeta.pl>
<jla4jc$79r$1@node2.news.atman.pl> <jlaclv$jrp$1@inews.gazeta.pl>
<jlaenc$isq$1@node2.news.atman.pl> <jlajqo$hrn$1@inews.gazeta.pl>
<jlans7$u0q$1@node2.news.atman.pl> <jlatk0$5mk$1@inews.gazeta.pl>
NNTP-Posting-Host: 144-mi3-6.acn.waw.pl
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
X-Trace: node2.news.atman.pl 1333371490 15086 85.222.69.144 (2 Apr 2012 12:58:10 GMT)
X-Complaints-To: u...@a...pl
NNTP-Posting-Date: Mon, 2 Apr 2012 12:58:10 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20120327
Thunderbird/11.0.1
In-Reply-To: <jlatk0$5mk$1@inews.gazeta.pl>
Xref: news-archive.icm.edu.pl pl.comp.programming:196545
[ ukryj nagłówki ]W dniu 2012-04-02 02:58, M.M. pisze:
>> To, co nazwałem 'złożeniem' polega na tym, że najpierw
>> losujemy jedną liczbę k ~ B(n,p), a następnie, mając
>> już k robimu losowanie liczby g z rozkąłdu g~B(k,q)
>> (poprzednio w obu losowaniach musiało być to samo p).
> No tak. Dzieląc jeden zbiór o liczności n na dwa
> podzbiory o liczności k i n-k, schodzimy rekurencyjnie
> w dół. Ale czemu za drugim razem jest B(k,q), a nie
> B(k,p)?
Bo podział między zbiory 'weszło' i 'nie weszło'
może być inny. Jak w przykładzie z 6 szufladkami,
najpierw dzielimy po 3, czyli jest 1/2 sanszy że wejdzie
do wyróżnionego zbioru, a następnie z tych 3 wybieramy jedną
więc szansa jest tylko 1/3.
>
> Np. mamy 11 szufladek i n kulek. Szufladki dzielimy
> mniej/więcej po równo, czyli na 5 i 6. Prawdopodobieństwo
> że kulka wleci do pierwszych pięciu to 5/11, a że do
> pozostałych 6/11. Czyli zmienną k losujemy z
> rozkładu B(n,5/11).
Tak.
> W ten sposób podzieliliśmy zbiór
> na dwa podzbiory o liczności k i n-k. Następnie schodzimy
> rekurencyjnie w dół dla "5 szufladek i k kulek" i "6 szufladek i
> n-k kulek". O to chodzi?
Tak. Podzieliliśmy te kulki między te zbiory tak, jakby każda
z osobna była losowana i z równym prawdopodobieństwem
lądowała w każdej z szuflad.
>> Okazuje się, że g ~ B (n,p*q)
> Hmmm nie wiem i nie wiem do czego to jest potrzebne. Chyba
> się gubię w symbolach p i q.
Masz swoje wylosowane k i 5 szuflad. Wybierasz szufladę
nr 2. Losujesz liczbę kul w tej szufladzie z rozkładu B(k,1/5)
Wzorek mówi, że liczba ta ostatecznie będzie (gdy zapomnimy o k)
z rozkładu B(n,1/5 * 5/11) = B (n,1/11)
więc jakbyś od razu losował dla tej jednej.
>> Ale ze wzorku g ~ B (50, 1/2*1/3) = B (50,1/6)
>> czyli tak, jakbyśmy od razu badali trafianie do
>> szuflady 1. Robienie tego (w ten sposób!) na raty
>> nie zmienia wyniku.
> Czyli można liczyć albo rekurencyjnie, albo iteracyjnie:
> k1 ~ B(50,1/6)
> k2 ~ B(50-k1,1/5)
> k3 ~ B(50-k1-k2,1/4)
> k4 ~ B(50-k1-k2-k3,1/3)
> k5 ~ B(50-k1-k2-k3-k4,1/2)
> k6 = 50-k1-k2-k3-k4-k5
> Jeśli B jest jakimkolwiek prawidłowym rozkładem to nie
> widzę powodu aby to mogło nie działać.
Tak, to jest właśnie pierwszy algorytm z postu.
>> n = N; //ile kulek jeszcze zostało.
>> for( i=0 ; i<M ; i++ )
>> {
>> int k = generuj_liczbę_losową_B ( n, 1.0/(M-i) );
>> x[i]+=k;
>> n-=k;
>> }
Tylko trzeba mieć poprawny generator.
Druga wersja, dzieląca na połowy, potrafi przy dużym n (w porównaniu
do liczby szuflad) zadowolić się przybliżeniem opartym o generator
normalny (jeśli chcesz rozkład 'podobny', a nie są to jakieś ścisłe
symulacje opierające poprzwność o ten rozkład:)
W sumie nie jest trudne przy takich warunkach 'naprawić'
to metodą eliminacji (jak ona się po angielsku nazywa?)
algo od początku zbudować swoją za pomocą metody 'alias'.
pzdr
bartekltg
Następne wpisy z tego wątku
- 02.04.12 15:00 bartekltg
- 02.04.12 15:22 M.M.
- 02.04.12 15:55 M.M.
- 02.04.12 16:16 bartekltg
- 02.04.12 17:11 M.M.
- 02.04.12 17:31 Michoo
- 02.04.12 18:25 bartekltg
- 02.04.12 18:30 M.M.
- 02.04.12 18:47 Michoo
- 02.04.12 18:49 M.M.
- 02.04.12 18:51 M.M.
- 02.04.12 19:25 Edek Pienkowski
- 02.04.12 10:52 Roman W
- 02.04.12 12:07 Roman W
- 03.04.12 17:30 bartekltg
Najnowsze wątki z tej grupy
- Alg. kompresji LZW
- Popr. 14. Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- Arch. Prog. Nieuprzywilejowanych w pełnej wer. na nowej s. WWW energokod.pl
- 7. Raport Totaliztyczny: Sprawa Qt Group wer. 424
- TCL - problem z escape ostatniego \ w nawiasach {}
- Nauka i Praca Programisty C++ w III Rzeczy (pospolitej)
- testy-wyd-sort - Podsumowanie
- Tworzenie Programów Nieuprzywilejowanych Opartych Na Wtyczkach
- Do czego nadaje się QDockWidget z bibl. Qt?
- Bibl. Qt jest sztucznie ograniczona - jest nieprzydatna do celów komercyjnych
- Co sciaga kretynow
- AEiC 2024 - Ada-Europe conference - Deadlines Approaching
- Jakie są dobre zasady programowania programów opartych na wtyczkach?
- sprawdzanie słów kluczowych dot. zła
- Re: W czym sie teraz pisze programy??
Najnowsze wątki
- 2025-02-21 Warszawa => Key Account Manager IT <=
- 2025-02-21 Warszawa => Data Engineer (Tech Lead) <=
- 2025-02-21 Aliexpress zaczął oszukiwać na bezczelnego.
- 2025-02-21 Warszawa => System Architect (Java background) <=
- 2025-02-21 Kula w łeb
- 2025-02-21 Warszawa => System Architect (background deweloperski w Java) <=
- 2025-02-21 Warszawa => Solution Architect (Java background) <=
- 2025-02-21 Lublin => JavaScript / Node / Fullstack Developer <=
- 2025-02-21 Pawel S
- 2025-02-21 Warszawa => Key Account Manager (Usługi HR) <=
- 2025-02-21 Katowice => Senior Field Sales (system ERP) <=
- 2025-02-21 Chrzanów => Programista NodeJS <=
- 2025-02-21 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-02-21 Warszawa => Administrator Systemów Windows IT <=
- 2025-02-21 Wrocław => Specjalista ds. Sprzedaży (transport drogowy) <=