다른 숫자를 거듭 제곱하는 Java 프로그램을 작성 중입니다. Math.pow (8,4)와 8 * 8 * 8 * 8 사이에서 처리하는 데 더 짧은 시간이 필요합니까?Math.pow()와 * 연산자를 여러 번 처리하는 것이 더 빠릅니다.
-6
A
답변
-1
0
확인이 작은 코드
long pr=1;
long st=System.currentTimeMillis();
for(int i=0;i<200_00_00_000;i++)
pr=pr*8;
long en=System.currentTimeMillis();
System.out.println("Executiom time : "+(en-st));
그것은이 코드를 당신에게 실행 시간을 줄 것이다.
Math.pow (8,200_00_00_000)에 대해서도 동일하게 수행하고 차이점을 찾으십시오.
p.s : Math.pow()
이 더 빨리 실행됩니다. 멱 함수의
0
효율 loop.You이 방식으로는 다음의 각 functionility 걸리는 시간을 확인할 수있는 것보다 더 크다 - 8^4 같은 간단한 조작의
double i=10;
java.util.Date dt=new java.util.Date();
double z=(long) Math.pow (8,i);
java.util.Date dt1=new java.util.Date();
System.out.println("Using Power formula:"+(dt1.getTime()-dt.getTime()));
double t=1;
for(double k=1;k<=i;k++){
t*=8;
}
java.util.Date dt2=new java.util.Date();
System.out.println("Using loop :"+(dt2.getTime()-dt1.getTime()));
+0
측정 할 수 없습니다. Date와의 빠른 작업 ... http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro-benchmark-in-java도 참조하십시오. – assylias
0
수동 승산 빠를 것이다. jmh 쇼 (나노초/영업 이익)를 사용하여 마이크로 벤치 마크 :
Benchmark Mode Thr Cnt Sec Mean Mean error Units
c.a.p.SO23595573.mult avgt 1 3 2 3.074 0.022 nsec/op
c.a.p.SO23595573.pow avgt 1 3 2 68.696 0.186 nsec/op
코드 :
private int x = 8;
private int y = 4;
@GenerateMicroBenchmark
public double mult() {
double result = x;
for (int i = 0; i < y - 1; i++) {
result *= x;
}
return result;
}
@GenerateMicroBenchmark
public double pow() {
return Math.pow(x, y);
}
관련 문제
- 1. 어느 것이 더 빠릅니다.
- 2. 반복을 찾는 것이 더 빠릅니다.
- 3. 한 번 지나면 파일 복사가 더 빠릅니다.
- 4. 여러 목록을 만들거나 개체 목록을 만드는 것이 더 빠릅니다.
- 5. 어느 것이 더 빠릅니다 - WebSockets 또는 Ajax입니까?
- 6. 목록에서 설정 또는 제거하는 것이 더 빠릅니다.
- 7. 벡터에서 지우거나 크기를 조정하는 것이 더 빠릅니다.
- 8. 어느 것이 더 빠릅니다 - string + 또는 jQuery?
- 9. INSERT 전후에 더 빠릅니다.
- 10. MYSQL에서 쿼리하거나 PHP 로직을 사용하는 것이 더 빠릅니다.
- 11. 페이지에 여러 개의 DropDowns로드가 더 빠릅니다.
- 12. 웹 서비스에서 여러 이미지로드가 더 빠릅니다.
- 13. 어느 것이 더 빠릅니다 : VB.NET 또는 DB2 SQL의 현재 날짜
- 14. 오라클 검색에 더 빠릅니다.
- 15. 루프 시작이 더 빠릅니다.
- 16. SQL 쿼리가 더 빠릅니다.
- 17. UIViewController가 더 빠릅니다.
- 18. 은 자바보다 더 빠릅니다.
- 19. 메서드를 여러 번 적용하는 것이 더 좋은 방법일까요?
- 20. 함수를 반복하거나 함수를 여러 번 호출하는 것이 더 빠릅니까?
- 21. 파일을 여러 번 열거 나 닫는 것이 더 좋습니까?
- 22. 클래스에서 IDisposable 개체를 여러 번 사용하는 것이 더 좋은 방법
- 23. 더 빠릅니다 : PHP 내부의 데이터를 처리하거나 여러 MySQL 요청을 만드시겠습니까?
- 24. 1TB 파일을 처리하는 것이 더 빠릅니다 : 단일 기계 또는 5 대의 네트워크로 연결된 기계?
- 25. XPath 또는 Regexp가 더 빠릅니다.
- 26. 안드로이드, sdcard 또는 시스템 파티션에서 파일에 액세스하는 것이 더 빠릅니다.
- 27. Map/ArrayList : 어떤 요소를 검색하는 것이 더 빠릅니다.
- 28. CSS를 통해 그라데이션을 렌더링하거나 이미지를 직접로드하는 것이 더 빠릅니다.
- 29. Mongo가 콜렉션에서 카운트하거나 커서로 계산합니다. 어느 것이 더 빠릅니다.
- 30. WMI 또는 System.Diagnostics.Process 프로세스를 실행하는 것이 더 빠릅니다.
이미 모두 계산을 수행하는 것을 시도했다,의는'for' 루프를 사용하여 100 번 가정 해 봅시다? (단지 실행 시간을 비교하기 위해) – xav
그들이 똑같은 일을하고 있다고 생각하면 ... – Mozzie
@xav 큰 숫자를 사용하여 시도하지 않았습니다. Lemme 시도하고 다시 당신에게 – Aroniez