방정식 X^Y = Z를 사용하여 Y를 계산하려면 어떻게 C# 방법을 쓸 수 있습니까? 이미 존재합니까? 여기 누락 된 지수를 해결하기위한 C# 방법
내가 가진 것 데이터의 몇 가지 예입니다 -2^Y = 8
3^Y = 9
방정식 X^Y = Z를 사용하여 Y를 계산하려면 어떻게 C# 방법을 쓸 수 있습니까? 이미 존재합니까? 여기 누락 된 지수를 해결하기위한 C# 방법
내가 가진 것 데이터의 몇 가지 예입니다 -2^Y = 8
3^Y = 9
이이
Y=Math.Log(8)/Math.Log(2)
당신은 Math.Log 찾고 있습니다. 그와
당신은 할 수 있습니다 :베이스 (10)에 의해 대수 인Math.Log10
이
또한
x = Math.Log(8)/Math.Log(2)
하지 않는 것이 - 결과가 아직 동일합니다.
가장 최적화 된 옵션은 아니지만 많은 양의 for 루프를 반복하고 하나씩 반복하여 확인할 수 있습니다. 내 머리 속에 튀어 나온 해결책.
int base = 2;
int exponent;
int result = 8;
for(int i = -9999; i<= 10000000; i++)
{
exponent = i;
if(Math.Pow(2,exponent) == result)
{
WriteLine($"Y = {exponent}");
}
이것은 분명히 복잡합니다. 'Math.Log (a)/Math.Log (b)'와 같이 필요한 값을 계산하는 수학적 방법이 있습니다. –
그것은 최선의 해결책은 아니지만 작동합니다. 당신의 방법은 매우 좋고 간결합니다. 나는 그것을 좋아합니다! –
이것은 거의 실행 가능한 솔루션이 아닙니다. 솔루션을 찾으려는 경우에도 루프를 계속 진행하며 루프가 2^1024가되면 쉽게 오버플로합니다. –
당신은 X로이 도움이
희망을 나누어 할 수 있습니다 얼마나 많은 시간 Z 찾을 수보십시오 : 코드는 무엇인가 같을 것이다.
while (Z > X)
{
Z = Z/X;
Y++;
}
'Y = Math.Log (8, 2)' – Slai