matura informatyka maj 2017 zad 2 rekurencja

Поделиться
HTML-код
  • Опубликовано: 16 дек 2024

Комментарии • 31

  • @MaBed11
    @MaBed11 6 лет назад +4

    Dobrze wytłumaczone, dzięki bardzo i powodzenia wszystkim co zdają infę!

    • @spiderous
      @spiderous 5 лет назад +8

      Również powodzenia, ale kurwa, jak widzę takie zadania, gdzie mam odszyfrować co robi algorytm wyciśnięty z tyłka jakiegoś profesorka to mnie krew zalewa

  • @ForFi
    @ForFi 5 лет назад +2

    Całe zadanie staję się proste jak się tylko zauważy, że jest to pewna zamiana na liczbę binarną.

  • @dominikch.4519
    @dominikch.4519 6 лет назад +4

    mega wytłumaczone, dzięks

  • @konradkulesza7884
    @konradkulesza7884 4 года назад +1

    Ratuje mi pan życie

  • @logrox1
    @logrox1 7 лет назад +1

    Zadanie nr 1 odpowiedź w JS:
    function licz(x){
    if ( x == 1 ) {
    return 1;
    } else {
    var w = licz( parseInt(x/2) );
    if ( x % 2 == 1 ) {
    return w + 1;
    }else{
    return w - 1;
    }
    }
    }
    console.log( { 11 : licz(11),13 : licz(13),21 : licz(21),32 : licz(32)} );

    • @TheBestilsPL
      @TheBestilsPL 7 лет назад

      a return w-1 nie zwraca wartości w 'w' tylko pomniejszonej o 1 ?

    • @TheBestilsPL
      @TheBestilsPL 7 лет назад

      dzięki panu zapisowi to zrozumiałem w sumie jak by to rozpisać tak jak to widzę to wyszedł by mi taki kod ale już trochę rozumiem rekurencje mam nadzieję że komuś to obrazowe przedstawienie też pomoże zrozumieć rekurencje
      Zadanie nr 1 odpowiedź w JS:
      function licz(11){
      if ( 11 == 1 ) {
      return 1;
      } else {
      var w = licz( parseInt(11/2)//
      //wynik5
      function licz(5){
      if ( 5 == 1 ) {
      return 1;
      } else {
      var w = licz( parseInt(5/2) //
      //wynik 2
      // 1 wykonanie
      function licz(2){
      if ( 2 == 1 ) {
      return 1;
      } else {
      var w = licz( parseInt(2/2)//
      // wynik 1
      //2 wykonanie
      function licz(1){
      if ( 1== 1 ) {
      return 1;
      // wynik 1 zwrócenie 1 brak potrzeby kolejnego wykonania funkcji
      //3 wykonanie
      );
      if ( 1 % 2 == 1 ) {
      return 1 + 1;
      }else{
      return 1 - 1;
      } //1 wykonanie
      }
      }
      );
      if ( 2 % 2 == 1 ) {
      return 2 + 1;
      }else{
      return 2 - 1;
      } //2 wykonanie
      }
      }
      );
      if ( 1 % 2 == 1 ) {
      return 1+ 1;
      }else{
      return 1 - 1; //
      } //3 wykonanie
      }
      }

  • @sc5shout
    @sc5shout 4 года назад

    Nie pasuje mi coś w tym 2.3 zadaniu. Przecież 100 w binarnym to jest nic innego jak 01100100 i wtedy też mamy bitów zamiast 7, bo to 0 na początku można wyrzucać. Więc najmniejsza to by była jakbyśmy podmienili to ostatnie 0 na 1, tzn. 01100101, co rzeczywiście nie daje dobrego wyniku, ale niezbyt rozumiem skąd nagle ci się wzięło 10000000.

    • @csiu5051
      @csiu5051 3 года назад

      Nie możesz wywalić zer na binarce na końcu tylko z te zera z przodu wywalasz

  • @mikoajkrolik6403
    @mikoajkrolik6403 6 лет назад +2

    w końcu zrozumiałem to gówno jakim jest rekurencja

  • @serus164
    @serus164 6 лет назад +1

    Zadanie 1 w Javie:
    public static int licz(int x) {
    int w;
    if (x==1) {
    return 1;
    } else {
    w=licz(x/2);
    if (x%2==1) return w+1;
    else return w-1;
    }
    }

  • @Piter_27
    @Piter_27 6 лет назад

    nie rozumiem dlaczego gdy w funkcji licz(11) biore ten przeciwny wypadek to 11 div 2 = 5 i dlaczego potem znowu licze funkcje licz tylko od (5)? W skrócie dlaczego ta funkcja sie powtarza tylko, za x wstawiam ciagle zmieniona wartośc w?

    • @mikoajtelega1871
      @mikoajtelega1871  6 лет назад +1

      Rekurencja, zwana także rekursją (ang. recursion, z łac. recurrere, przybiec z powrotem) - odwoływanie się np. funkcji lub definicji do samej siebie. (źródło: pl.wikipedia.org/wiki/Rekurencja)
      funkcja odwołuje się sama do siebie. proponuję obejżeć filmik parę razy ;) nie zmęczę się. pzdr

    • @Piter_27
      @Piter_27 6 лет назад +1

      Mikołaj Telega sprawdziłem odrazu po obejrzeniu a kom napisałem wcześniej i juz wiem ale dxieki za odp tak czy siak

    • @kamilanonymous1359
      @kamilanonymous1359 6 лет назад

      a powiedz czemu nie bierze sie dla 11 6 tylko 5 ? komputer pokazuje zawsze 6 :/ to mnie przytloczylo...

    • @mikoajtelega1871
      @mikoajtelega1871  6 лет назад

      hmmmmm...... odpowiem. jak odpowiesz mi dlaczego miało by się brać 6 zamiast 5 ;)

    • @kamilanonymous1359
      @kamilanonymous1359 6 лет назад

      Mikołaj Telega bo 5.5 a przy połowie mówiono że się już do większej liczby zaokrągla a..... xD

  • @pawesajnog2248
    @pawesajnog2248 6 лет назад

    Poprawną odpowiedzią w 2.2 jest liczba x =2, gdyż jak widać mamy dla x =1 dwie poprawne odpowiedzi co już wyklucza się samo z siebie. Dla x=2(czyli następnej liczy po 1) mamy dwa wywołania funkcji a podstawiając ją do wzoru x =2^k-1 pięknie nam wychodzi prawidłowa odpowiedź :-)

  • @krzysztofwindorpski1847
    @krzysztofwindorpski1847 7 лет назад

    Dobrze przygotowany materiał, oby tak dalej ;)

  • @lotert14
    @lotert14 6 лет назад

    2.2 podany mamy przykład, dla x=13 k =4. dlatego odpowiedź a jest błędna, bo gdyby x=k^2 to najmniejszą wartością x dla k=4 byłoby 16, a my wiemy już, że dla x=13 też k=4. 13>=16 odpowiedź a błędna

    • @pawesajnog2248
      @pawesajnog2248 6 лет назад

      nie podstawiasz poprawnej odpowiedzi dla każdej z następnych liczb, to jest tylko przykład dla matołów jak wygląda liczba wywołań w stosunku do liczy przekazywanej w parametrze funkcji

    • @lotert14
      @lotert14 6 лет назад

      Paweł Sajnóg alternatywą znalezienia poprawnego rozwiązania jest wykluczenie pozostałych.

  • @poprostuuni4679
    @poprostuuni4679 5 лет назад

    SIema Byku Zagrasz Zemną w csa

  • @pspmielonka
    @pspmielonka 6 лет назад

    Kiedy majkraft

  • @pvthetic8378
    @pvthetic8378 3 года назад +2

    xd

  • @Arekadiusz
    @Arekadiusz 6 лет назад

    Chore to, ale dzięki za dobre tłumaczenie!