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

Rekurencja cpp

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
331 wizyt
pytanie zadane 26 kwietnia 2021 w C i C++ przez anteq69 Początkujący (260 p.)
Mam problem z pewnym zadaniem w cpp:

Oblicz n-ty wyraz następującego ciągu:
a[0] = 2
a[2*n] = a[n]*a[n]
a[2*n+1] = a[2*n]

nie wiem jak to przedstawić i rozwiązać w rekurencji. Ktoś podpowie?
komentarz 26 kwietnia 2021 przez Bondrusiek Maniak (61,440 p.)
Jaki jest zakres n ?
komentarz 26 kwietnia 2021 przez anteq69 Początkujący (260 p.)

 @Bondrusiek wartość n nie przekracza typu int

komentarz 26 kwietnia 2021 przez Bondrusiek Maniak (61,440 p.)

Coś mi tu nie gra:

a[2*n] = a[n]*a[n]
a[2*n+1] = a[2*n]

co daje

a[2*n] = a[n]*a[n]
a[2*n+1] = a[n]*a[n]

Masz gdzieś wypisane pierwsze elementy tego ciągu ?

 

komentarz 26 kwietnia 2021 przez anteq69 Początkujący (260 p.)
właśnie nie mam. Mam tylko w przykładzie podany 14 element ciągu, tj. 256
komentarz 26 kwietnia 2021 przez Michał Muzyka Pasjonat (24,080 p.)

@Bondrusiek,
przecież to jest poprawnie, wyrazy będą parami równe:
0. a[0] = 2
1. a[2*0 + 1] = a[0] = 2
2. a[2*1] = a[1] * a[1] = 4
3. a[2*1 + 1] = a[2*1] = 4
4. a[2*2] = a[2] * a[2] = 16
5. a[2*2 + 1] = a[2*2] = 16
itd
dla wyrazów parzystych korzystasz ze wzoru:
a[2*n] = a[n]*a[n]
dla nieparzystych:
a[2*n+1] = a[2*n]
 

komentarz 26 kwietnia 2021 przez Wiciorny Ekspert (278,710 p.)
. a[2*1 + 1] = a[2*1] = 4

od kiedy to jest prawdą :) bo a[3] != a[2]  w tym co napisałeś :) 

komentarz 26 kwietnia 2021 przez Michał Muzyka Pasjonat (24,080 p.)
no to wynika z powyżej podanych wzorów
a[2*n] = a[n]*a[n]
a[2*n+1] = a[2*n]

dla n=1
a[2] = a[1] * a[1]
a[3] = a[2],
czyli:
a[3] = a[2] = a[1] * a[1]      oraz a[1] = a[0]
czyli:
a[3] = a[2] = a[1] * a[1] = a[0] * a[0],
czyli:
a[3] = a[0] * a[0] = 2 * 2 = 4
komentarz 26 kwietnia 2021 przez Wiciorny Ekspert (278,710 p.)

@Bondrusiek, ma tutaj policzyc n-ty wyraz ciągu jemu nie sa potrzebne wartości tak naprwdę, bo ma to być wzór w postaci a[n] = .... wzór 
Więc autor teraz korzystając z tego co napisałeś, powinien przekształcić wyrażenie, tak aby ten wzór na a[n] wyznaczyc. 

komentarz 26 kwietnia 2021 przez Bondrusiek Maniak (61,440 p.)
@Wiciorny

Ok, dzięki za zaangażowanie.
komentarz 27 kwietnia 2021 przez Michał Muzyka Pasjonat (24,080 p.)

@Wiciorny, 

nie każdy wzór rekurencyjny można zamienić na prosty wzór, tutaj akurat się da, ale na początku padł argument, że wzór rekurencyjny jest źle podany.
Tutaj trzeba policzyć a[n/2] wyraz, a[n/4], a[n/8] itd. bo do tego sprowadza się ta rekurencja, czyli prostą drogą dedukcji można dojść do tego, że te wyrazy będą parami takie same i będą kolejnymi potęgami dwójki

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 417 wizyt
pytanie zadane 6 stycznia 2021 w C i C++ przez monia79wawa Nowicjusz (190 p.)
0 głosów
1 odpowiedź 1,494 wizyt
0 głosów
4 odpowiedzi 453 wizyt
pytanie zadane 18 stycznia 2016 w C i C++ przez Seamel Nowicjusz (120 p.)

93,187 zapytań

142,203 odpowiedzi

322,025 komentarzy

62,515 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2476p. - Tomasz Bielak
  6. 2445p. - Łukasz Siedlecki
  7. 2443p. - rucin93
  8. 2373p. - Marcin Putra
  9. 2310p. - Michal Drewniak
  10. 2156p. - Anonim 3619784
  11. 2152p. - Adrian Wieprzkowicz
  12. 2105p. - Mikbac
  13. 1733p. - rafalszastok
  14. 1701p. - Michał Telesz
  15. 1580p. - ssynowiec
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...