eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingCo jest nie tak z C++ (było: Rust) › Re: Co jest nie tak z C++ (było: Rust)
  • Data: 2018-01-07 23:00:45
    Temat: Re: Co jest nie tak z C++ (było: Rust)
    Od: g...@g...com szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu niedziela, 7 stycznia 2018 22:30:41 UTC+1 użytkownik Maciej Sobczak napisał:
    > > Co do istoty, iteracja nie jest bardziej wydajna, niż rekurencja,
    > > bo iteracja jest tylko specjalizacją rekurencji.
    >
    > Ale ja do ich uruchomienia używam nie "istoty", tylko procesora. A tam iteracja
    działa szybciej.

    Mylisz się.
    Pewne strategie implementacji rekurencji działają wolniej
    (i zużywają więcej zasobów) od typowych strategii implementacji
    iteracji, i tyle.
    Istnieją strategie, pozwalające implementować rekurencję
    ogonową (czyli taką, która realizuje iterację) bez narzutu.

    > > Dobrze jest to wyjasnione w "Strukturze i Interpretacji Programów
    > > Komputerowych",
    >
    > A jeszcze lepiej w dokumentacji procesora.

    W dokumentacji procesora nie używa się takich pojęć, jak
    "proces obliczeniowy".

    > > Rekurencja natomiast zarówno może więcej (jest mniej wyspecjalizowana),
    > > jak również jest prostsza (w sensie złożoności) od iteracji.
    >
    > Tego nie pokazałeś.

    Nie pokazałem, ale mógłbym łatwo pokazać, definiując funkcję, której
    Ty użyłeś, za pomocą rekurencji.

    > Moja iteracyjna definicja przodka była prostsza od Twojej rekurencyjnej.

    W jaki sposób chciałbyś uzasadnić, że była prostsza?

    > Moja iteracyjna metoda wyboru elementów z listy też była prostsza.

    W jaki sposób chciałbyś uzasadnić, że była prostsza?

    > > W przypadku podanego przez Ciebie przykładu, zrozumienie zapisu x[[1 ;; ;; 2]]
    > > wymaga odwołania do dokumentacji
    >
    > Tak.
    >
    > > W rozwiązaniu Kaya jedyna przypadkowa złożoność
    > > jest w nazwach. Ale w tej kwestii z pomocą przychodzi nam dorobek
    > > Burstalla,
    >
    > I teraz zrozumienie Twojego przykładu wymaga odwołania się do dorobku Burstalla.

    Nie wymaga.

    > Nie przekonałeś mnie, że jest to prostsze. A mój zapis dalej jest krótszy. Co
    więcej, jeśli będę chciał mieć nie co drugi element, tylko co dziesiąty, to zmienię 2
    na 10 i działa: x[[1;; ;;10]]. Złożoność tego zapisu się nie zmieniła. Co musisz
    zmienić w swoim przykładzie, żeby wybrać z listy co dziesiąty element?

    Pewnie musiałbym zmienić więcej. Co nie oznacza, że Twoje rozwiązanie
    jest prostsze, tylko to, że Twoje rozwiązanie można łatwiej dostosować
    do pewnej klasy zmian wymagań (z czym się zasadniczo zgadzam)

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

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: