2016-07-28 2 views

답변

4

이이

Y=Math.Log(8)/Math.Log(2) 
+1

'Y = Math.Log (8, 2)' – Slai

1

당신은 Math.Log 찾고 있습니다. 그와

당신은 할 수 있습니다 :베이스 (10)에 의해 대수 인 Math.Log10

또한
x = Math.Log(8)/Math.Log(2) 

하지 않는 것이 - 결과가 아직 동일합니다.

0

가장 최적화 된 옵션은 아니지만 많은 양의 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}"); 
} 
+0

이것은 분명히 복잡합니다. 'Math.Log (a)/Math.Log (b)'와 같이 필요한 값을 계산하는 수학적 방법이 있습니다. –

+0

그것은 최선의 해결책은 아니지만 작동합니다. 당신의 방법은 매우 좋고 간결합니다. 나는 그것을 좋아합니다! –

+0

이것은 거의 실행 가능한 솔루션이 아닙니다. 솔루션을 찾으려는 경우에도 루프를 계속 진행하며 루프가 2^1024가되면 쉽게 오버플로합니다. –

0

당신은 X로이 도움이

희망을 나누어 할 수 있습니다 얼마나 많은 시간 Z 찾을 수보십시오 : 코드는 무엇인가 같을 것이다.

while (Z > X) 
{ 
    Z = Z/X; 
    Y++; 
} 
관련 문제