아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

재귀 함수 z

시간 제한5초메모리 제한256 MB

요약
n/m에서 정의된 조각별 일차 점화식을 인자 수열을 따라가 순환 구간을 찾은 뒤 연립방정식을 정확히 풀어 계산합니다.
난이도

보통10점 중 7점

유형
수학, 그래프, 재귀
정답자
아직 제출이 없습니다

문제

t=n/mt = n/m이라고 두고, 함수 zz를 다음과 같이 정의한다.

z[t]={a+(b+rt2) z[−1−2t]r(t≤0)c+(d+rt2) z[1−2t]r(t>0)z[t] = \begin{cases} \dfrac{a + (b + r t^2)\, z[-1 - 2t]}{r} & (t \le 0) \\ \dfrac{c + (d + r t^2)\, z[1 - 2t]}{r} & (t > 0) \end{cases}

정수 aa, bb, cc, dd, nn, mm, rr가 주어지면 z[n/m]z[n/m]의 값을 구한다.

매개변수의 범위는 다음과 같다.

1≤n≤m≤1001 \le n \le m \le 100

1≤b≤r,1≤d≤r,1≤r≤10001 \le b \le r, \quad 1 \le d \le r, \quad 1 \le r \le 1000

1≤a≤1000,1≤c≤10001 \le a \le 1000, \quad 1 \le c \le 1000

이 정의로 z[n/m]z[n/m]의 값은 항상 하나로 정해진다. 입력에 등장하는 모든 매개변수 집합은 ∣z[n/m]∣≤104|z[n/m]| \le 10^4을 만족한다.

입력

첫째 줄에 값을 구해야 하는 함수의 개수가 주어진다. 이 개수는 1 이상 100 이하이다. 이어지는 각 줄에는 함수 하나의 정수 매개변수가 nn, mm, aa, bb, cc, dd, rr 순서로 공백을 두고 주어진다.

출력

각 매개변수 집합마다 한 줄에 z[n/m]z[n/m]의 값을 소수점 아래 여섯째 자리까지 반올림해 출력한다. 소수점 아래 여섯 자리는 값이 0이어도 모두 적는다. 반올림한 결과가 0이면 부호를 붙이지 않고 0.000000을 출력한다.

예제2

  1. 예제 1

    입력
    3
    1 1 1 1 1 1 1
    2 3 1 2 3 4 10
    2 3 5 6 7 8 9
    
    예상 출력
    -1.000000
    0.422581
    4.111111
    
  2. 예제 2

    입력
    1
    1 1 1000 1 1000 1 1000
    
    예상 출력
    -1000.000000