[C++]Pomoc w rozwiązaniu 2-ch zadanek :(

0

Witam! Proszę o pomoc. Dostałem takie dwa zadanka do rozwiązania i nie potrafię sobie z nimi poradzić:
Zadanie 1
[code]Oto definicja funkcji f(n):
int f(int n)
{
if(n<2) return n;
return n+2*f(n-1)-f(n-2);
}
Proszę napisać program konwersacyjny
wyznaczający najmniejszą wartość
argumentu n, dla której f(n) > M, gdzie M
jest liczbą nieujemną wprowadzoną przez
użytkownika. Oto przykładowa
konwesacja z programem (na czerwono
tekst użytkownika) :
Podaj M: 10
n = 4: f(4) = 20
Podaj M: 100
n = 8: f(8) = 120
Podaj M: 1234
n = 19: f(19) = 1330
Podaj M: 0 (zero kończy konwersację)[/code]
Czyli użytkownik wprowadza M a program robi resztę :( Nie mam punktu zaczepienia proszę o pomoc :(

Zadanie 2
[code]Proszę pokazać wszystkie warianty
rozmieszczenia 4 brakujących hetmanów
na szachownicy 5x5 tworzące konfiguracje
niekolizyjne. Ile rozmieszczeń
bezkolizyjnych z centralnie położonym
hetmanem byłoby na szachownicy 7x7?[/code]
I oto rysunek tej szachownicy:
[URL=http://img32.imageshack.us/i/beztytuults.png/][IMG]http://img32.imageshack.us/img32/3900/beztytuults.png[/IMG][/URL]

Uploaded with [URL=http://imageshack.us]ImageShack.us[/URL]

Bardzo proszę o pomoc :( Pozdrawiam!

0

W zad.1 jest podstęp, bo np. dla m=1e6 odpowiedź n=180, f(n)=1004731
licząc f() tak jak jest, liczba rekurencyjnych wywołań f() dla 180 jest liczbą chyba 38 cyfrową
sporo, można się nie doczekać

0

Co do zadania z hetmanami to popularny problem. Poczytaj o rekurencji z powrotami i zajrzyj tutaj to Ci powinno pomóc w rozwiązaniu Twojego problemu :)</url>

0

co do pierwszego
myślę, że najlepiej zbudować tablicę 0..2953, pesymistyczny koszt O(12), nie zależny od "m"
licząc kolejne z rekurencyjnej postaci

na marginesie:
przydać się się może wiedza, że f(x)=x(x+1)(x+2)/6 ale...
na 32 bitowej maszynie działa gdy x<2^11
kolejny "kruczek" w zadaniu,
liczyć należy oczywiście nie tak: f(x)=x(x+1)(x+2)/6
tylko tak: f(x)=x*(x+1)/2*(x+2)/3
(iloczyn dwu kolejnych liczb podzielny jest przez 2, 3 kolejnych przez 3, a razem przez 6)

1 użytkowników online, w tym zalogowanych: 0, gości: 1