eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingW NYC ucza przedszkolakow C++
Ilość wypowiedzi w tym wątku: 53

  • 41. Data: 2012-07-15 12:32:15
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: Roman W <b...@g...pl>

    On Sunday, July 15, 2012 8:37:22 AM UTC+1, Edek Pienkowski wrote:

    > Była mowa o sortowaniu. Czy aby na pewno nie da się żyć bez znajomości
    > quick sorta? Ile razy w życiu trzeba algorytm sortowania napisać
    > samemu? Szczerze mówiąc, mi się jeszcze _nigdy_ nie zdarzyło. To
    > samo mogę powiedzieć o wielu innych algorytmach, znam ich właściwości
    > i używam, nie muszę nawet wiedzieć jak działają i do głowy by mi
    > nie przyszło żeby przepisywać na nowo coś, co zawsze po prostu jest.

    Powierzchowna znajomosc narzedzi ktore sie uzywa jest niebezpieczna, bo czlowiek jest
    nieswiadomy, kiedy narzedzie przestaje byc efektywne albo nawet staje sie
    zagrozeniem.

    >
    > Ciekawość i chęć poznania świata to zupełnie inny temat, ale
    > dlaczego akurat quick sort?

    Oklepany przyklad, ale dotyczy mnostwa innych rzeczy. Np. ludzie ktorzy zawsze
    uzywaja metody Runge-Kutta 4 rzedu.

    RW


  • 42. Data: 2012-07-15 12:47:25
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: PK <k...@n...pl>

    On 2012-07-15, Edek Pienkowski <e...@g...com> wrote:
    > W to akurat nie wątpię, że quicksort dobrym przykładem jest, tylko
    > jakoś mi umknęło, czego konkretnie miałby być podstawą.

    Niestety nie rozumiem tego zdania :/.

    > Zazwyczaj jestem świadomy sytuacji, kiedy powinienem się na tym
    > pochylić, a jak się pomylę to profiler szybko mnie naprostuje;
    > stabilność to osobna cecha, jak o niej nie myślę to zazwyczaj
    > nie ma ku temu powodu.

    No to masz fart. Ja muszę o sortowaniu myśleć dużo. Taka sytuacja.
    Za to inne rzeczy mogę olewać. Np. rzadko piszę jakiekolwiek GUI, więc
    roboty mniej :).

    Zdarzyło mi się za to kilka razy w życiu stosować sortowanie optymalne.
    Większość osób mniej lub bardziej świadomie pisze to dla dwóch liczb,
    ale kiedyś miałem potrzebę dla aż 16. Skok wydajności OGROMNY :D.

    pozdrawiam,
    PK


  • 43. Data: 2012-07-15 12:56:53
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: Wojciech Jaczewski <w...@o...pl>

    PK wrote:

    > Rozmowa z "pythoniarzem" zaczyna wyglądać tak:
    > "To jak by Pan posortował tę listę?"
    > "W Pythonie x.sorted()"
    > "A bez tej metody?"
    > "Ale jak to? Przecież ona jest zawsze dostępna!"
    >
    > I 3 minuty później okazuje się, że człowiek nawet bardzo nie wie, na
    > czym polega sortowanie i że istnieją różne podejścia.

    Tego rodzaju pytania mają pewną interesującą cechę: słabo na nie odpowiadają
    ci, którzy akademickie książki czytali dawno. Gdyby oceniać ludzi po
    odpowiedziach na tego rodzaju pytania, to dużo lepiej będą wypadać studenci
    i świezi absolwenci, niż ludzie z doświadczeniem, którzy dawno się z tymi
    tematami nie zetknęli bo nie mieli takiej potrzeby.
    Wniosek: nie ma się specjalnie czym emocjonować, że jakiś pythoniarz
    niewiele wiedział o algorytmach sortowania. Wcale nie oznacza to, że gdyby
    zaszła taka potrzeba, to by się nie douczył (i znów zapomniał po roku).


  • 44. Data: 2012-07-15 13:36:44
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: PK <k...@n...pl>

    On 2012-07-15, Roman W <b...@g...pl> wrote:
    > Powierzchowna znajomosc narzedzi ktore sie uzywa jest niebezpieczna,
    > bo czlowiek jest nieswiadomy, kiedy narzedzie przestaje byc efektywne
    > albo nawet staje sie zagrozeniem.

    Bez przesady z tym zagrożeniem - nie każdy modeluje mosty, a tych
    modelujących się kontroluje i sprawdza. Trochę gorzej jest w nauce,
    gdzie recenzenci potrafią przegapić ewidentne głupoty i można sobie
    narobić wiochy :).

    Generalnie jeśli wynik jest ważny, to warto wiedzieć co i z jakim błędem
    zwracają użyte metody :).

    > Oklepany przyklad, ale dotyczy mnostwa innych rzeczy. Np. ludzie
    > ktorzy zawsze uzywaja metody Runge-Kutta 4 rzedu.

    Akurat ze standardowym Runge-Kutta są większe problemy.
    Nie jest symplektyczny i odwracalny w czasie, więc w praktyce nadaje się
    chyba tylko do gier i edukacji :).

    Lepsze wersje są już na tyle bardziej skomplikowane, że raczej trudno
    ich używać nieświadomie :).

    pozdrawiam,
    PK


  • 45. Data: 2012-07-15 13:45:22
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: PK <k...@n...pl>

    On 2012-07-15, Wojciech Jaczewski <w...@o...pl> wrote:
    > Tego rodzaju pytania mają pewną interesującą cechę: słabo na nie odpowiadają
    > ci, którzy akademickie książki czytali dawno. Gdyby oceniać ludzi po
    > odpowiedziach na tego rodzaju pytania, to dużo lepiej będą wypadać studenci
    > i świezi absolwenci, niż ludzie z doświadczeniem, którzy dawno się z tymi
    > tematami nie zetknęli bo nie mieli takiej potrzeby.

    Jeśli zadaje się takie pytania, to pewnie są one istotne w danym
    projekcie / na danym stanowisku. Ludzie do klepania interfejsów nie
    muszą tego wiedzieć, więc pewnie tego się od nich nie wymaga.

    Jeśli ktoś zajmuje się algorytmiką regularnie, to pewnie i 20 lat
    po studiach będzie sobie radził z takimi pytaniami. Tym bardziej, że
    cały czas pojawia się coś nowego i najlepszych dostępnych algorytmów
    generalnie szuka się w publikacjach z ostatnich ~10 lat.

    > Wniosek: nie ma się specjalnie czym emocjonować, że jakiś pythoniarz
    > niewiele wiedział o algorytmach sortowania. Wcale nie oznacza to, że gdyby
    > zaszła taka potrzeba, to by się nie douczył (i znów zapomniał po roku).

    Idąc tym tropem można w ogóle stwierdzić, że wszystko jest do
    "douczenia", więc programista niczego nie musi umieć :).
    Ale czasem trzeba wybrać osobę z grupy na jakiejś podstawie.
    Doświadczenie ("programuję od 20 lat!") tak naprawdę nie mówi niczego.
    Doświadczenie i brak rozwoju ("programuję od 20 lat tak samo!") mówią
    już dużo, ale raczej nie na korzyść :).

    pozdrawiam,
    PK


  • 46. Data: 2012-07-15 14:13:08
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: Edek Pienkowski <e...@g...com>

    Dnia Sun, 15 Jul 2012 11:45:22 +0000, PK napisal:

    > On 2012-07-15, Wojciech Jaczewski <w...@o...pl> wrote:
    >> Tego rodzaju pytania mają pewną interesującą cechę: słabo na nie odpowiadają
    >> ci, którzy akademickie książki czytali dawno. Gdyby oceniać ludzi po
    >> odpowiedziach na tego rodzaju pytania, to dużo lepiej będą wypadać studenci
    >> i świezi absolwenci, niż ludzie z doświadczeniem, którzy dawno się z tymi
    >> tematami nie zetknęli bo nie mieli takiej potrzeby.
    >
    > Jeśli zadaje się takie pytania, to pewnie są one istotne w danym
    > projekcie / na danym stanowisku. Ludzie do klepania interfejsów nie
    > muszą tego wiedzieć, więc pewnie tego się od nich nie wymaga.

    Jeżeli takie pytania są istotne, to miałbym żal o to, że nie było
    dopisku "studenci ostatnich lat mile widziani". Bo to strata czasu.

    > Jeśli ktoś zajmuje się algorytmiką regularnie, to pewnie i 20 lat
    > po studiach będzie sobie radził z takimi pytaniami. Tym bardziej, że
    > cały czas pojawia się coś nowego i najlepszych dostępnych algorytmów
    > generalnie szuka się w publikacjach z ostatnich ~10 lat.

    Sortowanie nie jest z ostatnich 10 lat. Nie wiem, co masz na myśli
    mówiąc "algorytmika". Jeżeli tworzenie nowego algorytmu sortowania to ok,
    ale przy zwykłym stosowaniu i to "często i gęsto" sortowania nie ma
    żadnego znaczenia, jakiego sorta używa biblioteka, o ile a) nie jest
    w ciasnej pętli, albo b) nie ma zauważalnie dużo elementów. Ostatecznie
    i tak z profilerem się nie dyskutuje.

    >> Wniosek: nie ma się specjalnie czym emocjonować, że jakiś pythoniarz
    >> niewiele wiedział o algorytmach sortowania. Wcale nie oznacza to, że gdyby
    >> zaszła taka potrzeba, to by się nie douczył (i znów zapomniał po roku).
    >
    > Idąc tym tropem można w ogóle stwierdzić, że wszystko jest do
    > "douczenia", więc programista niczego nie musi umieć :).
    > Ale czasem trzeba wybrać osobę z grupy na jakiejś podstawie.
    > Doświadczenie ("programuję od 20 lat!") tak naprawdę nie mówi niczego.
    > Doświadczenie i brak rozwoju ("programuję od 20 lat tak samo!") mówią
    > już dużo, ale raczej nie na korzyść :).

    Twoje podejście też nie przemawia na korzyść. W tym wątku pojawił
    się parę razy temat "podstaw", albo inaczej, na jakich podstawowych
    umiejętnościach student może zbudować przyszłą karierę. Różne uczelnie
    mają różne podejście m.in. do wyboru programu nauczania, ocenia się je
    po owocach a nie po swoim własnym podejściu do tematu. Więc w mojej
    opinii, nie trzeba wszystkiego wiedzieć, co nie znaczy, że nie warto.

    Edek


  • 47. Data: 2012-07-15 18:41:06
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: PK <k...@n...pl>

    On 2012-07-15, Edek Pienkowski <e...@g...com> wrote:
    > Sortowanie nie jest z ostatnich 10 lat. Nie wiem, co masz na myśli

    Wspomniany wcześniej Timsoft jest z 2002 roku. Nie jest to algorytm
    znany, ale jest bardzo często używany (przez popularność Pythona, więc
    w pewnym sensie ważny :)). Z tego samego roku pochodzi bardzo ciekawy
    spreadsort (polecam poczytać).

    Z bardziej znanych... tu nie mam pewności, ale chyba bucket sort
    (jako uogólnienie kilku innych) jest dosyć świeży. Z całą pewnością
    w ostatnich latach ten algorytm był mocno rozwijany.

    > mówiąc "algorytmika". Jeżeli tworzenie nowego algorytmu sortowania to ok,
    > ale przy zwykłym stosowaniu i to "często i gęsto" sortowania nie ma
    > żadnego znaczenia, jakiego sorta używa biblioteka, o ile a) nie jest
    > w ciasnej pętli, albo b) nie ma zauważalnie dużo elementów. Ostatecznie
    > i tak z profilerem się nie dyskutuje.

    Może w Twoim doświadczeniu nie ma, ale ludzie mają różne sytuacje.
    Np. dla mnie zazwyczaj wariant pesymistyczny jest znacznie bardziej
    istotny niż średni - dlatego m.in. nie używam quicksorta. Poza tym
    często cierpię na deficyt RAMu i staram się dobierać algorytmy in situ.

    Niektóre algorytmy dobrze radzą sobie z ciągami zupełnie losowymi,
    a inne z już częściowo posortowanymi.

    I to nie jest tak, że chcę być fajny i optymalizuję sortowanie
    200 numerów telefonów w książce adresowej :). Te problemy są dla mnie
    naprawdę istotne :).

    Wiem, że jestem w tym wypadku marginesem, ale to nie zmienia faktu, że
    każda osoba używająca jakiejś funkcji "sort()" powinna przynajmniej
    wiedzieć, co ta funkcja zwraca, czyli czy algorytm jest stabilny.
    Widywałem już programy sypiące się, bo autor o tym zapomniał.

    pozdrawiam,
    PK


  • 48. Data: 2012-07-15 19:33:33
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: Wojciech Jaczewski <w...@o...pl>

    PK wrote:

    > [...]
    > I to nie jest tak, że chcę być fajny i optymalizuję sortowanie
    > 200 numerów telefonów w książce adresowej :). Te problemy są dla mnie
    > naprawdę istotne :).

    I czy zajmujesz się tym dlatego, że ktoś zamówił produkt, w którym jest to
    niezbędne, czy może robisz pracę naukową?


  • 49. Data: 2012-07-15 19:35:44
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: Edek Pienkowski <e...@g...com>

    Dnia Sun, 15 Jul 2012 16:41:06 +0000, PK napisal:

    > On 2012-07-15, Edek Pienkowski <e...@g...com> wrote:
    >> Sortowanie nie jest z ostatnich 10 lat. Nie wiem, co masz na myśli
    >
    > Wspomniany wcześniej Timsoft jest z 2002 roku. Nie jest to algorytm
    > znany, ale jest bardzo często używany (przez popularność Pythona, więc
    > w pewnym sensie ważny :)). Z tego samego roku pochodzi bardzo ciekawy
    > spreadsort (polecam poczytać).

    Z kwietnia czy października? To już prawie 10 ;)

    > Z bardziej znanych... tu nie mam pewności, ale chyba bucket sort
    > (jako uogólnienie kilku innych) jest dosyć świeży. Z całą pewnością
    > w ostatnich latach ten algorytm był mocno rozwijany.
    >
    >> mówiąc "algorytmika". Jeżeli tworzenie nowego algorytmu sortowania to ok,
    >> ale przy zwykłym stosowaniu i to "często i gęsto" sortowania nie ma
    >> żadnego znaczenia, jakiego sorta używa biblioteka, o ile a) nie jest
    >> w ciasnej pętli, albo b) nie ma zauważalnie dużo elementów. Ostatecznie
    >> i tak z profilerem się nie dyskutuje.
    >
    > Może w Twoim doświadczeniu nie ma, ale ludzie mają różne sytuacje.
    > Np. dla mnie zazwyczaj wariant pesymistyczny jest znacznie bardziej
    > istotny niż średni - dlatego m.in. nie używam quicksorta. Poza tym
    > często cierpię na deficyt RAMu i staram się dobierać algorytmy in situ.

    Ja faktycznie mam takie podejście do sortowania jak do nowego modelu
    uchwytu śrubokręta. Zwracam na nie uwagę tylko wtedy gdy jest mi
    potrzebny akurat taki a nie inny. Domyślam się, że mamy tu swoistą
    symetrię.

    > Niektóre algorytmy dobrze radzą sobie z ciągami zupełnie losowymi,
    > a inne z już częściowo posortowanymi.

    To jest odwieczny problem, dane o określonej skrukturze mogą trafić
    w wariant pesymistyczny albo nawet trafiać bardzo często. Brak
    struktury to też pewna cecha z gatunku cech strukturalnych,
    nie ma jak tego skompresować chociażby.

    Z ciekawości, który algorytm najlepiej odwróci sortowanie?
    (Poza reverse(), nie wiemy, że są posortowane odwrotnie).

    > I to nie jest tak, że chcę być fajny i optymalizuję sortowanie
    > 200 numerów telefonów w książce adresowej :). Te problemy są dla mnie
    > naprawdę istotne :).

    Rozumiem. O większości powyższych słyszałem, w dokumentacji bibliotek
    Pythona też pamiętam, że chyba faktycznie był to timsort, ale mój
    mózg nisko spriorytetyzował tę informację i się zagubiła.

    Zaskoczyło mnie, że te algorytmy są stosunkowo nowe. Doczytam kiedyś
    w wolnej chwili, kiedyś ta wiedza się może przydać. Kolejna dziedzina,
    gdzie wydawałoby się że nic już nowego nie powstanie, a jednak.

    > Wiem, że jestem w tym wypadku marginesem, ale to nie zmienia faktu, że
    > każda osoba używająca jakiejś funkcji "sort()" powinna przynajmniej
    > wiedzieć, co ta funkcja zwraca, czyli czy algorytm jest stabilny.
    > Widywałem już programy sypiące się, bo autor o tym zapomniał.

    Prawda, ja też widzę często bardziej podstawowe błędu typu a < b < c
    i c < a. Nie różnię się tutaj od innych programistów, robię błędy
    które muszę poprawiać, takie też z podobną częstotliwością jak
    if (a) zamiast if (!a).

    Edek


  • 50. Data: 2012-07-15 20:18:45
    Temat: Re: W NYC ucza przedszkolakow C++
    Od: PK <k...@n...pl>

    On 2012-07-15, Wojciech Jaczewski <w...@o...pl> wrote:
    > I czy zajmujesz się tym dlatego, że ktoś zamówił produkt, w którym jest to
    > niezbędne, czy może robisz pracę naukową?

    Różnie.

    Dużymi zbiorami danych zajmuję się hobbystycznie i w pracy.

    W aktualnej pracy naukowej akurat żadnego sortowania explicite nie
    uprawiam, ale bardzo interesuje mnie wydajne wprowadzanie elementów
    do pewnej dość skomplikowanej struktury (z kilkoma porządkami).

    W solidną optymalizację algorytmów bawię się zupełnie prywatnie (akurat
    chodzi o analizę szeregów czasowych). W skrócie: klepię krótkie
    programy wykonujące sporo operacji na relatywnie małych danych, ale
    bardzo zależy mi na zmieszczeniu się w pewnym limicie czasu (tu pojawiło
    się optymalne sortowanie 16 elementów, o którym pisałem wcześniej :)).

    Mam nadzieję, że to wystarczająco szczegółowa odpowiedź, bo więcej
    powiem tylko szałowej blondynce, a Twoje imię nie wskazuje... :]

    pozdrawiam,
    PK

strony : 1 ... 4 . [ 5 ] . 6


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: