eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingzadanie z netu
Ilość wypowiedzi w tym wątku: 63

  • 1. Data: 2013-03-27 19:18:28
    Temat: zadanie z netu
    Od: firr kenobi <p...@g...com>

    przyladajac net natknalem sie na takie zadanie
    podobno zadane gdzies studentom na jakims roku

    dla danego pliku tekstowego z jakas ksiazką (np
    robinson crusoe) napisac program ktory wyszuka i
    wypisze na ekran 10 najczesciej wystepujacych
    tam słow

    wygrywa jeden program tj ten ktory to zrobi
    najszybciej

    jak by nalezalo napisac taki program ?


  • 2. Data: 2013-03-27 19:24:26
    Temat: Re: zadanie z netu
    Od: "M.M." <m...@g...com>

    W dniu środa, 27 marca 2013 19:18:28 UTC+1 użytkownik firr kenobi napisał:
    > jak by nalezalo napisac taki program ?
    Chyba zahaszować pary (słowo,częstość).
    Pozdrawiam


  • 3. Data: 2013-03-27 20:45:41
    Temat: Re: zadanie z netu
    Od: grapeli23 <g...@g...com>

    Dnia 27.03.2013 firr kenobi <p...@g...com> napisał/a:
    > przyladajac net natknalem sie na takie zadanie
    > podobno zadane gdzies studentom na jakims roku
    >
    > dla danego pliku tekstowego z jakas ksiazką (np
    > robinson crusoe) napisac program ktory wyszuka i
    > wypisze na ekran 10 najczesciej wystepujacych
    > tam słow
    >
    > wygrywa jeden program tj ten ktory to zrobi
    > najszybciej
    >
    > jak by nalezalo napisac taki program ?

    https://github.com/kragen/shootout/tree/master/bench
    /wordfreq


  • 4. Data: 2013-03-28 01:51:58
    Temat: Re: zadanie z netu
    Od: bartekltg <b...@g...com>

    W dniu 2013-03-27 19:24, M.M. pisze:
    > W dniu środa, 27 marca 2013 19:18:28 UTC+1 użytkownik firr kenobi napisał:
    >> jak by nalezalo napisac taki program ?
    > Chyba zahaszować pary (słowo,częstość).

    Ogolnie jakakolwiek mapa i powinno pójść w miarę sprawnie.

    Hashowana pewnie będzie sprawniejsza. Unorderet_set
    ma co najmniej iterator z inkrementacją, więc
    i ze znalezieniem na koniec maksimum problemu nie będzie.

    Można by się ewentualnie zastanowić nad czymś w rodzaju
    drzew trie czy patricia, ale skoro nie
    musimy się przejmować pamięcią, nic nie zyskujemy,
    a wydajność leci.

    No to stl, szybki hash i sprawny odczyt (pewnie trzebaby
    wyhakować sobie własny, bo strumienie wolne;)


    Statystyka dla chętnych.

    Książka ma ok 65k słów.

    http://www.granice.pl/kultura,zgadnijcie--ile-slow-l
    iczy-przecietna-ksiazka,4550

    A liczba różnych słów to parę tysiecy.

    http://www.antimoon.com/forum/t14464.htm

    Alice's Adventures in Wonderland: 2766
    Pride and Prejudice: 6424
    A Tale of Two Cities: 9877
    Oliver Twist: 10419
    A Connecticut Yankee in King Arthur's Court: 10312

    Po polsku dzięki odmianie pewnie będzie więcej słów
    rozumianych jako różne ciągi znaków.

    pzdr
    bartekltg



  • 5. Data: 2013-03-28 08:55:21
    Temat: Re: zadanie z netu
    Od: firr kenobi <p...@g...com>

    W dniu czwartek, 28 marca 2013 01:51:58 UTC+1 użytkownik bartekltg napisał:
    > W dniu 2013-03-27 19:24, M.M. pisze:
    >
    > > W dniu środa, 27 marca 2013 19:18:28 UTC+1 użytkownik firr kenobi napisał:
    >
    > >> jak by nalezalo napisac taki program ?
    >
    > > Chyba zahaszować pary (słowo,częstość).
    >
    >
    >
    > Ogolnie jakakolwiek mapa i powinno pójść w miarę sprawnie.
    >
    >
    >
    > Hashowana pewnie będzie sprawniejsza. Unorderet_set
    >
    > ma co najmniej iterator z inkrementacją, więc
    >
    > i ze znalezieniem na koniec maksimum problemu nie będzie.
    >
    >
    >
    > Można by się ewentualnie zastanowić nad czymś w rodzaju
    >
    > drzew trie czy patricia, ale skoro nie
    >
    > musimy się przejmować pamięcią, nic nie zyskujemy,
    >
    > a wydajność leci.
    >
    >
    >
    > No to stl, szybki hash i sprawny odczyt (pewnie trzebaby
    >
    > wyhakować sobie własny, bo strumienie wolne;)
    >
    >
    >
    >
    >
    > Statystyka dla chętnych.
    >
    >
    >
    > Książka ma ok 65k słów.
    >
    >
    >
    > http://www.granice.pl/kultura,zgadnijcie--ile-slow-l
    iczy-przecietna-ksiazka,4550
    >
    >
    >
    > A liczba różnych słów to parę tysiecy.
    >
    >
    >
    > http://www.antimoon.com/forum/t14464.htm
    >
    >
    >
    > Alice's Adventures in Wonderland: 2766
    >
    > Pride and Prejudice: 6424
    >
    > A Tale of Two Cities: 9877
    >
    > Oliver Twist: 10419
    >
    > A Connecticut Yankee in King Arthur's Court: 10312
    >
    >
    >
    > Po polsku dzięki odmianie pewnie będzie więcej słów
    >
    > rozumianych jako różne ciągi znaków.
    >

    a czym sie rozni hashowana od niehashowanej w sensie sprawnosci ? (nigdy nie uzywalem
    tego
    hashowania i jakos nawet specjalnie nie
    przepadam za tym pojeciem poki co nigdy
    nie bylo mi potrzebne) I jak realizowane
    jest wstawianie/wyszukiwanie czy dany element
    juz jest wstawiony? Trzyma sie posortowane
    drzewo? Tak wogole to nie jestem zbytnio
    przekonany czy bylaby to najszybsza metoda. ;)




  • 6. Data: 2013-03-28 11:01:21
    Temat: Re: zadanie z netu
    Od: "R.e.m.e.K" <g...@d...null>

    Dnia Thu, 28 Mar 2013 00:55:21 -0700 (PDT), firr kenobi napisał(a):

    > a czym sie rozni hashowana od niehashowanej w sensie sprawnosci ? (nigdy nie
    uzywalem tego
    > hashowania i jakos nawet specjalnie nie
    > przepadam za tym pojeciem poki co nigdy
    > nie bylo mi potrzebne) I jak realizowane
    > jest wstawianie/wyszukiwanie czy dany element
    > juz jest wstawiony? Trzyma sie posortowane
    > drzewo? Tak wogole to nie jestem zbytnio
    > przekonany czy bylaby to najszybsza metoda. ;)

    Googla serwery padly??

    --
    pozdro
    R.e.m.e.K


  • 7. Data: 2013-03-28 11:04:28
    Temat: Re: zadanie z netu
    Od: Michoo <m...@v...pl>

    On 28.03.2013 01:51, bartekltg wrote:
    > W dniu 2013-03-27 19:24, M.M. pisze:
    >> W dniu środa, 27 marca 2013 19:18:28 UTC+1 użytkownik firr kenobi
    >> napisał:
    >>> jak by nalezalo napisac taki program ?
    >> Chyba zahaszować pary (słowo,częstość).
    >
    > Ogolnie jakakolwiek mapa i powinno pójść w miarę sprawnie.
    >
    > Hashowana pewnie będzie sprawniejsza. Unorderet_set
    > ma co najmniej iterator z inkrementacją, więc
    > i ze znalezieniem na koniec maksimum problemu nie będzie.
    >
    > Można by się ewentualnie zastanowić nad czymś w rodzaju
    > drzew trie czy patricia, ale skoro nie
    > musimy się przejmować pamięcią, nic nie zyskujemy,
    > a wydajność leci.
    >
    > No to stl, szybki hash i sprawny odczyt (pewnie trzebaby
    > wyhakować sobie własny, bo strumienie wolne;)

    I ty brutusie?

    sync_with_stdio?? iostream jest od pewnego czasu już równie szybkie co stdio
    No chyba, ze extreme: jak po linuxem to można użyć czystego read albo
    jeszcze lepiej mmap

    Trzeba zrobić szybkie lower/upper (pewnie lookup table, nieduże w sumie).

    Hash podejrzewam, że sprawdzi się w postaci:

    uint_least32_t hash=0;
    uint_fast16_t len=0;
    for(char c:str){
    hash^=c;
    hash<<=1;
    len++;
    }
    hash=(hash<<4)^len;


    I szczerze mówiąc to jakby to był jakiś konkurs na zwolnienie z egzaminu
    to pewnie bym w ASM wstawki rzeźbił.


    --
    Pozdrawiam
    Michoo


  • 8. Data: 2013-03-28 11:25:11
    Temat: Re: zadanie z netu
    Od: "M.M." <m...@g...com>

    W dniu czwartek, 28 marca 2013 08:55:21 UTC+1 użytkownik firr kenobi napisał:
    > a czym sie rozni hashowana od niehashowanej w sensie
    > sprawnosci ? (nigdy nie uzywalem tego
    W ogole czy w tym zadaniu? :D

    W ogole jeśli uzywamy drzewek, to mozna jeszcze (dodatkowa funkcjonalnosc
    wzgledem hash-table) szybko (bez wywolywania funkcji sort) wyswietlic
    posortowane dane. Mozna takze czesciej uzywane elementy przeniesc
    w gore drzewka - dodatkowa optymalizacja. Mozna latwo wzbogacic standardowe
    drzewa i mozna szybko wyswietlic N-ty element w kolejnosci sortowania.

    W hash-table (z zalozenia - w praktyce to nie zawsze jest takie proste i
    oczywiste) mozemy szybciej dodac element i sprawdzic czy wczesniej byl
    dodany - nie ma zadnego sortowania. Hash-table jest prostsza w
    implementacji - przynajmniej jak na moje oko :)

    Hash-table ma problem gdy chcemy dodac wiecej elementow niz na poczatku
    zalozylismy. Z drzewami jest problem gdy zrobi sie z nich lista - specyficzne
    dane, trzeba uzyc wersji wywazaniem, a to dodatkowy narzut.

    Wiecej w tej chwili nie pamietam :)

    Pozdrawiam


  • 9. Data: 2013-03-28 11:27:28
    Temat: Re: zadanie z netu
    Od: "M.M." <m...@g...com>

    W dniu czwartek, 28 marca 2013 11:04:28 UTC+1 użytkownik Michoo napisał:
    > I szczerze mówiąc to jakby to był jakiś konkurs na zwolnienie z egzaminu
    > to pewnie bym w ASM wstawki rzeźbił.
    Bys musial wiedziec na jakim kompie programy beda porownywane.
    Pozdrawiam


  • 10. Data: 2013-03-28 11:53:31
    Temat: Re: zadanie z netu
    Od: firr kenobi <p...@g...com>

    W dniu czwartek, 28 marca 2013 11:25:11 UTC+1 użytkownik M.M. napisał:
    > W dniu czwartek, 28 marca 2013 08:55:21 UTC+1 użytkownik firr kenobi napisał:
    >
    > > a czym sie rozni hashowana od niehashowanej w sensie
    >
    > > sprawnosci ? (nigdy nie uzywalem tego
    >
    > W ogole czy w tym zadaniu? :D
    >
    >
    >
    > W ogole jeśli uzywamy drzewek, to mozna jeszcze (dodatkowa funkcjonalnosc
    >
    > wzgledem hash-table) szybko (bez wywolywania funkcji sort) wyswietlic
    >
    > posortowane dane. Mozna takze czesciej uzywane elementy przeniesc
    >
    > w gore drzewka - dodatkowa optymalizacja. Mozna latwo wzbogacic standardowe
    >
    > drzewa i mozna szybko wyswietlic N-ty element w kolejnosci sortowania.
    >
    >
    >
    > W hash-table (z zalozenia - w praktyce to nie zawsze jest takie proste i
    >
    > oczywiste) mozemy szybciej dodac element i sprawdzic czy wczesniej byl
    >
    > dodany - nie ma zadnego sortowania. Hash-table jest prostsza w
    >
    > implementacji - przynajmniej jak na moje oko :)
    >
    >
    >
    > Hash-table ma problem gdy chcemy dodac wiecej elementow niz na poczatku
    >
    > zalozylismy. Z drzewami jest problem gdy zrobi sie z nich lista - specyficzne
    >
    > dane, trzeba uzyc wersji wywazaniem, a to dodatkowy narzut.
    >
    >
    >
    > Wiecej w tej chwili nie pamietam :)
    >
    >

    nigdy nie uzywalem hashowania ani nawet
    o tym nie czytalem ;o (nigdy nie bylo
    mi potrzebne)

    prosta kwestia: o ile wstawiac te wyrazy do drzewa
    to jego 'posortowanie'/upozadkowanie jest
    potrzebne bo przeciez chodzi o to by szybko znalezc czy nie ma w nim juz tego
    elementu ,i
    jak jest to zrobic ++ na tym wyrazie

    moje pytanie jest czy wstawianie do tego
    drzewa (?) hashy jest szybsze i dlaczego
    (zwlaszcza ze jak mi sie wydaje chyba pozniej
    trzeba znalezc operacje odwrotna, tj z 10ciu najczeciej wystepujacych hashy znalezc
    10
    wyrazow) ? (no i rozwiazac ten problem ze taki sam hash moze dac wiecej wyrazow)

    sama ta idea 'sciumpienia' dluzszych stringow
    do nieduzych liczb jest fajna ale nie wiem
    za bardzo jak robi sie pozniej robotę odwrotną
    kiedy kilkanascie roznych encji zhaszuje sie
    do jednej liczby - to przeciez chyba byloby
    raczej wolne

strony : [ 1 ] . 2 ... 7


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: