2014-10-03 2 views
0

Y가 DateTime 값이고 X가 정수 값인 경우 선형 보간을 계산하는 메서드를 만드는 작업이 지정되었습니다. 예를 들어, 다음 값을보고, 7, 8 및 9 값을 찾는 방법은?C에서 선형 보간 계산 방법 만들기

Date:  Value: 
05/01/2013 5 
06/01/2013 7 
10/01/2013 9 
11/01/2013 1 
15/01/2013 7 
17/01/2013 2 
02/02/2013 8 

EDIT: 
int interpMethod(DateTime x0, int y0, DateTime x1, int y1, int x) 
{ 
    return y0 * (x - x1)/(x0 - x1) + y1 * (x - x0)/(x1 - x0); 
} 
+1

직접 해결하려고 했습니까? – pquest

+0

@pquest 도움이 되셨습니까? – Doro

+0

-2 아무도 도움이되는 답변을 드릴 수는 없습니다 – Doro

답변

3

다른 두 점 사이의 점을 보간하려면 변경 비율을 계산 한 다음 두 점 사이의 거리에 적용해야합니다.

또한 데이터 유형을 일관되게 유지하십시오. 표시하는 데이터는 두 배이지만 사용자의 메서드는 정수 만 처리합니다. 또한, 이중에서 넣고 DateTime을 찾으라는 질문을했지만 정수를 반환하고 있습니까?

public static DateTime Interpolate(DateTime x0, double y0, DateTime x1, double y1, double target) 
{ 
    //this will be your seconds per y 
    double rate = (x1 - x0).TotalSeconds/(y1 - y0); 
    //next you have to compute the distance between one of your points and the target point on the known axis 
    double yDistance = target - y0; 
    //and then return the datetime that goes along with that point 
    return x0.AddSeconds(rate * yDistance); 
} 
+0

도움이되는 답변에 감사드립니다. 그건 실수 였어; 방금 코드를 물어 보았 기 때문에 함수를 추가했습니다. 어쨌든, 날짜 목록을 통해 iterate를 사용해야 할 경우 어떻게해야합니까? 프로그래밍 방식으로 두 날짜를 입력하려면 어떻게해야합니까? – Doro

+0

기다리십시오. 주어진 날짜의 날짜 또는 주어진 날짜의 값을 알고 싶습니까? – pquest

+0

아니요 방금 3 개의 날짜가 표시되었지만 날짜 목록을 반복하는 방법을 제안 해 주시겠습니까? – Doro