내 프로젝트에 자바에서 필요한 전력 (기본, 지수)에 대한 최적의 방법을 만들고 싶습니다. 기본 및 지수 유형이 모두 int이고 지수가 < = 10입니다.^9.이 작업은 Java에서 수행되어야하지만 비트 시프트를 사용할 수는 있지만 java.beind에서 비트 셋을 사용하는 것이 좋습니다.효율적인 전력 지수 방법을 자바에서 (JDK 1.7)
1
A
답변
0
java.lang.BigInteger
클래스 만 사용하면됩니다. 그것은 정확하게 효율적인 방법으로 원하는 것을 정확하게 수행하는 pow() 방법을 가지고 있습니다.
+0
사실 modpow()는 문제가 해결되었습니다. :) – djscribbles
-1
지수가 int로되어 있기 때문에 이미 컴퓨터의 숫자가 2 진수로 표시되어 있습니다. 따라서 계산에 사용하는 기본, 지수 및 임시 정수의 세 가지 정수가 있어야하며 솔루션에 대해 하나 더 사용해야합니다. 다음과 같이 시작하십시오 :
unsigned int base;//you manage input for this and exponent like you wish, probably passed in as parameters
unsigned int exponent;
unsigned int temp = base;
unsigned int answer = 1;
while (exponent!=0){
if (exponent%2 == 1){
answer *= temp;
}
exponent>>1;
temp<<1;
}
이 알고리즘을 시도하고 어떻게 작동하는지 알려주십시오. while look은 지수의 최대 비트 길이 (즉, 32 배)에서 실행됩니다. 이 코드는 큰 숫자 또는 음수를 처리하지 않지만 필요 여부를 잘 모르겠습니다.
관련 문제
- 1. SWT 브라우저 - 스윙 통합 - Mac - JDK 1.7
- 2. Mac jre/jdk 1.7 작동하지 않음
- 3. Android 기기에서 전력 효율적인 동영상 스트리밍
- 4. 자바에서 효율적인 문자열 일치
- 5. 자바에서 스크립트를 실행하는 효율적인 방법
- 6. 안드로이드 1.5에서 서버 소켓 프로그래밍, 가장 전력 효율적인 방법?
- 7. 지수
- 8. 자바에서 URL의 텍스트를 정렬하는 가장 효율적인 방법
- 9. 자바에서 값에서 키를 가져 오는 효율적인 방법
- 10. 복잡한 대칭 3 중 매트릭스의 빠른 지수 지수 지수
- 11. 1.7
- 12. 계산기에 전력 함수 소개
- 13. APNS가 jdk와 호환되지 않음 1.7
- 14. jdk 14에서 jdk 16으로 마이그레이션
- 15. JDK 1.6은 JDK 1.5와 호환됩니까?
- 16. 오버로드 된 지수 C# 및 지수 연산자
- 17. 파일을 필터링하는보다 효율적인 방법을 찾으려고 시도합니다.
- 18. 컨트롤을 지우는 더 효율적인 방법을 찾고
- 19. UnsupportedClassVersionError를 1.7, 1.6 설정
- 20. (도장 1.7)
- 21. 자바에서 객체가 외부로 확장되는 방법을 알려주는 방법
- 22. 자바에서 문자열 형태의 IP에서 바이트 [] 표현을하는 방법을
- 23. 본문을 자바에서 iframe의 내용을 보유하는 방법을 얻으려면
- 24. 패스 지수
- 25. 액세스 : 지수
- 26. SQLServer에 지수
- 27. 지수 :: 목록
- 28. UINT 지수
- 29. 지수 EQ
- 30. 전력 집합 계산 알고리즘
오버플로를 어떻게 처리 하시겠습니까? –
Optimal은 매우 어려울 것입니다.하지만 'O (log exponent)'를 매우 쉽게 할 수 있습니다 : http://en.wikipedia.org/wiki/Exponentiation_by_squaring - 오버 플로우를 고려하지 않습니다. – IVlad
@IVlad : 해결책은 O 연산 (log exponent)이 아니라 O (log exponent) 시간/연산 – amit