여러 숫자가 2인지 효율적으로 판단하십시오.
프로그래밍에서 주어진 숫자 2가 매우 유용한 기술인지 판단합니다. 이 문제를 효과적으로 해결하기 위해 다양한 알고리즘이 제기되었습니다.
간단한 반복 알고리즘
한 가지 방법은 숫자가 일치하는 항목 또는 숫자가 현재 전력보다 작을 때까지 2 회 연속의 전력과 동일한 지 확인하는 것입니다. 이 알고리즘은 간단하고 명확하지만 대량에는 비효율적입니다.
계산 계산
다른 방법은 숫자의 전력과 숫자 하단의 숫자 수 사이의 관계를 탐구합니다. 계산 된 페어링과 4 개의 주택의 정수 값을 비교하면 2의 힘인지 여부를 평가할 수 있습니다. 그러나이 방법은 듀얼 프레시션 계산에서 정확도 제한이 있습니다.
위치 운영 기술 : 0이 아닌 낮은 낮은 식별
매우 효율적인 알고리즘은 비트 연산자 (&)를 사용하여 숫자가 2 전력인지를 결정합니다. 숫자가 0이 아닌지 여부와 응용 프로그램 위치의 적용 결과와 (x -1)의 결과가 0인지 여부를 확인합니다. 이 기술은 숫자의 최소 유효 비트의 모든 최저점이 0인지 효과적으로 식별합니다. 이는 2의 전력의 특징입니다.
운영 기술의 설명
숫자와 (x -1) 사이의 비트 작동과 비트 작동은 숫자의 이진 표현에서 1을 빼냅니다. 결과가 0 인 경우 숫자의 이진 표현의 모든 장소가 0임을 의미합니다. 이 속성은 2의 전력에 적용되므로 0이 아닌 결과는 숫자가 2의 전력이 아님을 나타냅니다.
0 처리 조건
알고리즘은 2의 전력을 효과적으로 식별하지만, 제로 보고서의 전력을 실수로 2로 사용합니다. 이 비정상적인 상황을 해결하기 위해 2 : 로 간주되지 않는 전력을 배제하기 위해 추가 조건을 추가 할 수 있습니다.
이 최적화는 알고리즘이 주어진 숫자가 2의 전력인지 여부를 정확하게 결정하고 0을 제외합니다.
위 내용은 숫자가 2의 전력인지 확인하기위한 효율적인 알고리즘이 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!