-
Data: 2012-01-30 02:35:00
Temat: Re: odchylenie standardowe online
Od: bartekltg <b...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2012-01-30 02:47, M.M. pisze:
> Czesc
>
> Jest liniowa tablica malych liczb staloprzecinkowych
> int tablica[1..N];
> N jest dosc duze, rzedu 100tys do 10mln.
>
> Jest tablica indeksow
> int index[1..M]
>
> Kazdy index[i] dzieli tablice na pare tablic:
> tablica_a[1..index[i]]
> tablice_b[index[i]+1..N]
>
> Czyli tablica_a ma index[i] pierwszych elementow z tablicy
> a tablica_b ma elementy pozostale.
>
> Zadanie jest takie, aby szybko oszacowac odchylenie standardowe dla kazdej
> pary tablic ( dla kazdej tablicy w kazdej parze, razem 2*M odchylen ).
> M niestety moze przyjmowac duze wartosci, a wiec par moze byc duzo,
> np. M ~= N / log(N).
>
> Mozna to policzyc jakims algorytmem online, albo np. algorytmem ktory
> przebiega cala tablice nie wiecej niz 10 razy?
http://www.youtube.com/watch?v=gENVB6tjq_M
Odchylenie standardowe to pierwiastek wariancji.
Var(X) = E[ (X-E(X))^2 ] =...= E(X^2) - E(X)^2
Korzystamy z drugiej wersji.
Pisząc po ludzku sum_{i=1}^k (x_i^2/k)/k - ( sum_{i=1}^k x_i )^2/k
Ponieważ masz inty, nie musisz sie przejmować stratą dokładności
(np licząc odchylenie z dużęj próbki X ~ N(1,10^-12) lepiej użyć
pierwszego wzoru;) uważaj jedynie na zakres, bo prawie na pewno
przekroczysz int32, a dla odpowiednich danych i int64)
Liczysz więc na bieżąco sumę i sumę kwadratów, zapisujesz
je dla każdego k z tablicy index.
Potem za ich pomocą (oraz sumy i sumy kwadratów wszystkich)
obliczasz odchylenie w odpowiednich podtablicach.
Podsumowując masz jeden przejazd po 'tablica' z zapisywaniem
do tablic długości M (suma i suma kwadratów) a następnie
przelecenie tych tablic i wpisanie wyników (uważaj na związek
indeksu i długości przedziału==liczności próbki i pamiętaj
o pierwiastku:) IMHO najpierw odejmowanie, potem zrzut
na double i dzielenie.
pzdr
bartekltg
Następne wpisy z tego wątku
- 30.01.12 02:30 Jordan Szubert
- 30.01.12 04:27 M.M.
- 30.01.12 04:42 M.M.
- 30.01.12 04:53 bartekltg
- 30.01.12 05:25 M.M.
- 01.02.12 16:49 slawek
- 01.02.12 20:50 jolz
- 01.02.12 22:02 M.M.
- 01.02.12 23:54 bartekltg
- 02.02.12 18:17 slawek
- 02.02.12 18:23 slawek
- 02.02.12 22:00 M.M.
- 03.02.12 09:43 bartekltg
- 03.02.12 09:54 M.M.
- 03.02.12 10:19 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-03-02 Tusk idzie na rekord deportacji po 1989 [Będzie popyt na prawników]
- 2025-03-01 Obywatel telefonuje 112 lub 986
- 2025-03-01 detektyw (?) Rutkowski działał jako prasa
- 2025-03-01 "Policjant został ujęty obywatelsko..."
- 2025-03-01 zatrzymanie zbyszka maja
- 2025-03-01 Warszawa => Expert Recruiter 360 <=
- 2025-03-01 Chrzanów => NodeJS Developer <=
- 2025-03-01 Warszawa => Gen AI Engineer <=
- 2025-03-01 Wrocław => Konsultant wdrożeniowy Comarch XL/Optima (Księgowość i
- 2025-03-01 Kraków => Technical Team Leader (Clojure, Java) <=
- 2025-03-01 Zrobił TV OLED z TV LCD
- 2025-03-01 Gdynia => Sales Executive / KAM <=
- 2025-03-01 Błonie => Sales Specialist <=
- 2025-03-01 Ryga => Konsultant Wdrożeniowy Comarch XL/Optima (Księgowość i Kad
- 2025-03-01 Żerniki => Dyspozytor Międzynarodowy <=