-
Data: 2013-03-30 19:33:33
Temat: Re: zadanie z netu
Od: "M.M." <m...@g...com> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu sobota, 30 marca 2013 17:20:48 UTC+1 użytkownik Roman W napisał:
> No zarówno indeksowanie linii jak i wybor n-tej linii sie
> kwalifikuje. Moze zle ooisalem zadanie. Zalozmy ze ktos Ci wysle
> Bardzo Duzy plik jako strumien danych przez siec. Nie mozesz zapisac
> pliku po swojej stronie. Wiesz ze plik jest skonczony ale nie wiesz
> ile ma linii. Dowiesz sie o tym ze dostales komplet danych jak
> otrzymasz na wejsciu umowiony znak ASCII. Wybierz z pliku losowa
> linie z jednorodnym rozkladem prawdopodobieństwa.
Nie znam rozwiązania, ale mogę na głos pomyśleć.
Zadanie uproscimy do podania numeru "nr" poczatkowego znaku, powrot
do oryginalnej wersji zadania bedzie banalny.
Poczatkowo
nr=0 - znaki liczymy od zera.
curr_byte=0 - numer wczytanego znaku, inkrementujemy po kazdym znaku
cnt_rows=1 - ilosc wierszy, inkrementujemy po kazdym wierszu
Czytamy po jednym znaku. Gdy poprzednim znakiem byl inny znak niz
znak nowej linii to nie robimy nic. Wiec algorytm dziala poprawnie
dla pierwszego wiesza - w nr jest poprawna wartosc.
Teraz sprobujemy krok indukcyjny na kolejne wiersze:
Jesli porzednim znakiem byl znak konca wiersza, to mamy poprawne wartosci:
nr - bajt rozpoczynajacy poprzednio wylosowany wiersz
curr_byte - bajt rozpoczynajacy ten wiersz
cnt_row - ilosc rozpoznanych wierszy do tej pory
Generujemy calkowita liczbe losowa z przedzialu otwartego od 1 do cnt_row.
Bylo do tej pory wczytanych cnt_row wierszy. Czyli prawdopodobienstwo ze
liczba losowa bedzie rowna 1 jest rowna 1/cnt_row. Jesli liczba losowa
rowna jest 1 to do zmiennej nr przypisujemy curr_byte. A wiec w zmiennej
nr po tym kroku bedzie poprawny (zgodny z rozkladem rownomiernym) wiersz,
wiec krok mozna powtarzac do konca.
Co konczy dowod - o ile sie nie myle :D
Pozdrawiam
Następne wpisy z tego wątku
- 30.03.13 19:38 Michoo
- 30.03.13 23:06 M.M.
- 31.03.13 09:51 firr kenobi
- 31.03.13 10:00 Roman W
- 31.03.13 10:05 firr kenobi
- 31.03.13 10:05 firr kenobi
Najnowsze wątki z tej grupy
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
- "Wuj dobra rada" z KDAB rozważa: Choosing the Right Programming Language for Your Embedded Linux Device
- Nowa ustawa o ochronie praw autorskich - opis problemu i szkic ustawy
- 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)
Najnowsze wątki
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Czyli jednak elektryki są TANIE i powszechnie dostępne dla obywateli
- 2025-05-03 Elektryki do Morskiego Oka do utylizacji
- 2025-05-03 Crash testy na publicznej drodze - 4 BMW zderzone
- 2025-05-03 pojebane Google
- 2025-05-03 Brednie w wiki - hasło Dehomag
- 2025-05-03 gazowe kuchnie są znacznie bardziej szkodliwe dla zdrowia, niż dotychczas sądzono
- 2025-05-03 Chiny => Koordynator Produkcji / Przedstawiciel ds. rozwoju produktu <
- 2025-05-03 Gdańsk => Konsultant wdrożeniowy (systemy controlingowe) <=
- 2025-05-03 Warszawa => Frontend Developer (Angular13+) <=
- 2025-05-02 Gliwice => Business Development Manager - Network and Network Security
- 2025-05-02 Warszawa => Senior Frontend Developer (React + React Native) <=
- 2025-05-02 Polska => Senior Key Account Manager <=
- 2025-05-02 Warszawa => Senior Programmer C <=
- 2025-05-02 Gdańsk => Team Lead Data Engineer (Snowflake) <=