내 버전에서는 시프트와 덧셈 연산이 조금 덜하지만 끝에 곱셈이 있습니다. Aleksey 버전에는 시프트 및 덧셈 연산이 조금 더 있지만 곱셈은 없습니다. 얼마나 빠릅니까?
시프트 및 덧셈 연산이 있습니다 - 6 개 이하 (이진 검색). Shift(ulong)1<<k는 고려되지 않습니다. 그것은 상수입니다. 거기에 가는 유일한 것은 또한 상태 확인입니다. 조건 검사는 없지만 항상 6가지 연산, 곱셈, 1번의 시프트, 관리되는 배열에 대한 액세스(예: 인덱스 검사)가 있습니다. 따라서 속도 측면에서 분명히 귀하의 선택은 느려질 것입니다. 할머니에게도 가지 마십시오. :)
네, 그리고 당신의 버전은 확실히 신비로워 보입니다)
추신: 내 코드가 if-else를 통해 비교 체인으로 확장되고 모든 산술 연산 을 제거하면 엄청난 속도 향상을 얻을 수 있다는 가정이 있습니다. 그러나 이것은 코드의 큰 발판입니다. 매크로에서 재귀를 사용할 수만 있다면...
(지겹게도) 이것이 문제라면 "'k' - redefinition; different type modifiers"라는 에러가 나지만 화면에는 나오지 않는다. 따라서 컴파일러는 신경 쓰지 않으며 그게 요점이 아닙니다.
아 글쎄...
아 글쎄...
글쎄, 그것을 스스로 컴파일 해보십시오. 포럼에서 이 주제에 대한 게시물을 작성하기에 너무 게으르지 않다면 너무 게으르지 않고 편집기로 몰아넣고 F7 키를 누르십시오. 훨씬 빠릅니다.
정수의 이진 로그를 계산하는 빠른 방법. MathLog 를 통한 계산보다 3-5배 더 빠르게 작동합니다.
정수의 이진 로그를 계산하는 빠른 방법. MathLog를 통한 계산보다 3~5배 빠르게 작동합니다.
나는 다음과 같은 기능을 사용합니다(순수한 샤머니즘이지만 작동합니다).
두 기능 모두 동일한 정답을 제공하며 오류를 찾지 못했습니다.
작업 속도를 비교하는 것은 흥미롭습니다. 내 버전에서는 시프트와 덧셈 연산이 조금 덜하지만 끝에 곱셈이 있습니다. Aleksey 버전에는 시프트 및 덧셈 연산이 조금 더 있지만 곱셈은 없습니다. 얼마나 빠릅니까?
내 버전에서는 시프트와 덧셈 연산이 조금 덜하지만 끝에 곱셈이 있습니다. Aleksey 버전에는 시프트 및 덧셈 연산이 조금 더 있지만 곱셈은 없습니다. 얼마나 빠릅니까?
시프트 및 덧셈 연산이 있습니다 - 6 개 이하 (이진 검색). Shift(ulong)1<<k는 고려되지 않습니다. 그것은 상수입니다. 거기에 가는 유일한 것은 또한 상태 확인입니다. 조건 검사는 없지만 항상 6가지 연산, 곱셈, 1번의 시프트, 관리되는 배열에 대한 액세스(예: 인덱스 검사)가 있습니다. 따라서 속도 측면에서 분명히 귀하의 선택은 느려질 것입니다. 할머니에게도 가지 마십시오. :)
네, 그리고 당신의 버전은 확실히 신비로워 보입니다)
추신: 내 코드가 if-else를 통해 비교 체인으로 확장되고 모든 산술 연산 을 제거하면 엄청난 속도 향상을 얻을 수 있다는 가정이 있습니다. 그러나 이것은 코드의 큰 발판입니다. 매크로에서 재귀를 사용할 수만 있다면...
작업 속도를 비교하는 것은 흥미롭습니다.
변형 log2가 더 빠릅니다.
변형 log2가 더 빠릅니다.
이해했다.
제 기능을 대신하고 있습니다.