수식계산질문입니다.
안녕하세요.
다음과 같은 수식을 계산하는데 가장 빠른 방법이 있는지 알고 싶습니다.
1) 30 - | (88/100 - x/금액1) * 100 | = Y
2) (x/금액2) * 14 * 난이도계수 = Z
3) Y + Z = 39
- '|'는 절대값 기호입니다.
- 난이도계수는 1또는 0.8 또는 0.9
- x/금액1 에서 나온 결과를 소숫점 5째자리에서 반올림합니다.
- x/금액1 에서 나온 결과가 0.82995 보다 작을순 없습니다.
- x/금액2 에서 나온 결과를 소숫점 5째자리에서 반올림합니다.
- 2)에서 나온결과(Z)를 소숫점 3째자리에서 반올림합니다.
만약
금액1 = 10841969325
금액2 = 9716886000
난이도계수가 = 1
일경우 만족하는 x의 최소금액을 구하고싶습니다.. ㅠ.ㅠ
오해하실까바 그러는데 학교 숙제는 절대 아닙니다 ;;
저같은 경우엔 이렇게 했는데 속도가 많이 느리더군요
일단 x/금액1에 대한 조건으로
0.82995부터 +0.00001씩 증가시켜 계산을 하고
금액1*0.82995 로 x를 계산합니다.
나온x를 다시 -1원씩 (-)감해서 식에 다시 대입해서 28.99전까지 만족하는 x를 구했습니다.
for(p=0.82995; ; p += 0.00001){
Y = 30 - abs((0.88 - p)*100);
x = 10841969325*p;
Z = round(x/9716886000,4) * 14 * 1;
if(Y+Z <= 39) break;
}
for(;; x--){
Y = 30 - abs((0.88 - round(x/10841969325,4))*100);
Z = round(x/9716886000,4) * 14 * 1;
if(Y+Z < 39) break;
x2 = x;
}
이렇게해서 x2를 구했습니다.
하지만 속도가 너무 늦네요;;;;
좀더 빠른 방법이 없을까요???
머리만 좀 굴리면
공통수학 수준으로도 대수적 조작을 통해서 답에 매우 가까이 갈 수 있을 것 같습니다.
일단 x, y, z를 잘 정리해서 x의 식으로 나타내어 보세요.
1) 30 - | (88/100 - x/금액1) * 100 | = Y
1) 30 - | (88/100 - x/금액1) * 100 | = Y
2) (x/금액2) * 14 * 난이도계수 = Z
3) Y + Z = 39
(x/금액2) * 14 * 난이도계수 = Z
(x/금액2) * 14 = Z / 난이도계수
(x/금액2) = Z / 난이도계수 / 14
x = Z / 난이도계수 / 14 * 금액2
x = (39 - Y) / 난이도계수 / 14 * 금액2
x = (39 - {30 - | (88/100 - x/금액1) * 100 |}) / 난이도계수 / 14 * 금액2
1) 88/100 >= x/금액1
x = (39 - {30 - (88/100 - x/금액1) * 100}) / 난이도계수 / 14 * 금액2
x = (39 - {30 - (88 - x/금액1*100)} / 난이도계수 / 14 * 금액2
x = (39 - {30 - 88 + x/금액1*100)} / 난이도계수 / 14 * 금액2
x = (39 - {x/금액1*100 - 58}) / 난이도계수 / 14 * 금액2
x = (39 - x/금액1*100 + 58) / 난이도계수 / 14 * 금액2
x = (77 - x/금액1*100) / 난이도계수 / 14 * 금액2
x = 77 / 난이도계수 / 14 * 금액2 - x/금액1*100/ 난이도계수 / 14 * 금액2
x = 11 / 난이도계수 / 2 * 금액2 - x/금액1*50/ 난이도계수 / 7 * 금액2
x + x/금액1*50/ 난이도계수 / 7 * 금액2 = 11 / 난이도계수 / 2 * 금액2
x*(1 + 1/금액1*50/ 난이도계수 / 7 * 금액2) = 11 / 난이도계수 / 2 * 금액2
x = 11 / 난이도계수 / 2 * 금액2 / (1 + 1/금액1*50/ 난이도계수 / 7 * 금액2)
2) 88/100 < x/금액1
...
위에 계산 중에 틀린게 있을 수도 있습니다. 확인 안해봐서 ^^;
그냥 이런식으로 정리 하시라고 힌트를....
그리고 절대값 내부의 값이 음수일 때는 직접 정리하세요.
변수 셋, 식 셋인 것 같지만... 2)식에서 x와 z가 종속적이므로..
변수 셋, 식 셋인 것 같지만... 2)식에서 x와 z가 종속적이므로... 변수 둘로 줄일수 있고... 그 다음에 식을 두 개로 줄일 수 있고... 이런식으로 반복하면.... 식 하나 변수 하나만 남습니다.... 고교 1~2학년 수학 실력으로 종이하고 연필만 계산할 수 있습니다. 계산기는 필요할지도....
댓글 달기