-1
숫자의 제곱근을 취하는 수학에서는 음수와 양수근을 모두 제공해야합니다. 예를 들면 다음과 같습니다 (대부분의 프로그래밍 언어와 함께)두 제곱근을 계산하십시오
그러나√4 = -2 and +2
C 번호 만 2
를 반환합니다.
class PlusMinus
{
double A;
double B;
public PlusMinus(double _A, double _B)
{
A=_A;
B=_B;
}
public static PlusMinus Sqrt(double Number)
{
double A = Math.Sqrt(Number);
return new PlusMinus(A, -A);
}
}
을하지만 그 다음도 -2
및 +2
, 또는 다시 -2
및 2
을 제공 16^0.25
제공 4^0.5
으로이 같은 당량 취급하지 않습니다. 작업을 수행
public static PlusMinus Pow(double Number, double Power)
{
double A = Math.Pow(Number, Power);
if(Math.Pow(-A, 1/Power) == Number){
return new PlusMinus(A, -A);
}
return new PlusMinus(A, A);
}
:
은 그 다음 나는 Pow
기능을 다시 해봐야 할 것 같습니다. 그러나 이것은 가장 효율적인 계산 방법이 아닙니다. C#의 실제 제곱근. 더 좋은 방법이 있습니까?
두 배로 작업해야한다고 생각하지 않습니다. 여기에 지수가있다. 모든 +/- 결과는 짝수 정수 또는 그 반대의 값이기 때문입니다. – Euphoric
_ 그러나 이것은 가장 효율적인 방법으로 보이지 않습니다. 왜 그렇게 생각하니? 특별한 이유가 있습니까? –
@ SonerGönül 각각의 힘에 대해 역함수 ('Math.Pow (-A, 1/Power)')를 검사하고 있습니다. 나는 컴퓨터가해야 할 일을 효과적으로 두 배로 늘리고 있다고 생각한다. – Bonzo