• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Funkcja rekurencyjna - zadanie maturalne

Cloud VPS
0 głosów
1,828 wizyt
pytanie zadane 24 marca 2019 w Rozwój zawodowy, nauka, praca przez klestdrsv Nowicjusz (180 p.)

Dana jest następująca funkcja rekurencyjna:

Dane:

x — liczba całkowita,

n — dodatnia liczba całkowita.

 

funkcja F(x, n)

      jeżeli n = 1
          podaj wynik x i zakończ

       w przeciwnym razie
             jeżeli n mod 3 = 0
                  k ← F(x, n div 3)
                  podaj wynik k*k*k i zakończ

           w przeciwnym razie
                podaj wynik x*F(x, n-1) i zakończ

 

Podaj wszystkie wywołania rekurencyjne funkcji F oraz obliczany po każdym wywołaniu wynik, jeśli na początku wywołamy F(2, 10).

I teraz pytanie - jak się do tego zabrać? Skąd mam wiedzieć, że tutaj trzeba potęgować? Według tego wynik wychodzi 2*F(2,9). I co ja mam z tym dalej zrobić?

To dopiero moje pierwsze styczności z tymi funkcjami, także proszę o wyrozumiałość

1 odpowiedź

0 głosów
odpowiedź 25 marca 2019 przez areklipno Stary wyjadacz (11,930 p.)
Jeśli wiesz, że masz już 2 * F(2,9) to teraz robisz to samo z F(2,9) co zrobiłeś z F(2,10).

Czyli wywołanie pierwsze -> 2 * F(2,9)

Wywołanie drugie -> to co wyjdzie z F(2,9) (z racji że wpada n mod 3 = 0 to liczysz k i podnosisz do potęgi 3). Obliczenie k też nie będzie proste, ale metodę już znasz

.

Ogólnie rekurencja oznacza tak potocznie mówiąc ponowne odwołanie -> wykonujesz funkcję w kółko aż dojdziesz do moment, gdzie w instrukcji jest koniec.

Rekurencja, z którą się spotkałeś na pewno  to wyznaczanie NWW i NWD z matematyki - rozkład na czynniki pierwsze robisz tak długo, aż nie dojdziesz do jedynki. "Funkcja" każe Ci najpierw dzielić przez 2 potem przez 3 itd... aż wynik będzie równy 1.

W Twoim przypadku funkcja każe robić co innego, ale zasada działania jest taka sama.

Podobne pytania

0 głosów
1 odpowiedź 927 wizyt
0 głosów
3 odpowiedzi 707 wizyt
pytanie zadane 28 listopada 2019 w Nasze poradniki przez lobo.guru Obywatel (1,920 p.)
0 głosów
1 odpowiedź 2,190 wizyt
pytanie zadane 11 grudnia 2016 w C i C++ przez Falwack Początkujący (400 p.)

93,463 zapytań

142,456 odpowiedzi

322,726 komentarzy

62,840 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...