>백엔드 개발 >C++ >C++ 프로그래밍을 사용하여 방정식 n = x + n * x에 대한 해의 수를 구합니다.

C++ 프로그래밍을 사용하여 방정식 n = x + n * x에 대한 해의 수를 구합니다.

WBOY
WBOY앞으로
2023-08-26 12:05:081130검색

使用C++编程,找到方程n = x + n * x的解的个数

이 기사에서는 방정식 n = x + n ⊕ x에 대한 해의 수를 찾을 것입니다. 즉, n = x +가 되는 주어진 값 n에 대해 x의 가능한 값 수를 찾아야 합니다. n ⊕ x, 여기서 ⊕은 XOR 연산을 나타냅니다.

이제 적절한 예를 들어 n = x + n ⊕ x의 해 개수에 대한 완전한 정보를 논의하겠습니다.

무차별 방식

무차별 방식을 사용하여 간단히 해의 수를 구할 수 있습니다. 즉, 주어진 n 값에 대해 0부터 시작하여 x의 각 정수 값을 적용하고 방정식이 충족되는지 확인합니다. of x는 n보다 작거나 같아야 합니다. 왜냐하면 (n ⊕ x)에 n보다 큰 값을 추가하면 n이 답으로 반환되지 않기 때문입니다.

n = 3이 되는 x 값을 찾으시겠어요?

   n = x + n ⊕ x
Putting x = 0,
   3 = 0 + 3 ⊕ 0
3 ⊕ 0 = 3,
   3 = 3
   LHS = RHS(x = 0 satisfy the equation)
So, x = 0 is one of the solution

Example

의 중국어 번역은 다음과 같습니다:

Example

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n = 3, c=0;
    for (int x = 0; x <= n; ++x)// loop for giving value of x from 0 to n
        if (n == x + n ^ x)//checking if value of x satisfies the equation
            ++c;
    cout  << "Number of possible solutions : " << c;
    return 0;
}

Output

Number of possible solutions : 4

이것은 무차별 방법을 적용하여 n = x + n ⊕ x에 대한 해의 수를 찾는 간단한 C++ 프로그램입니다.

효율적인 방법

이 방법에서 n의 이진 형태를 보면 1로 설정된 비트 수를 찾아야 하는데, 방정식에 따르면 n이 설정된 경우라고 할 수 있습니다. 이면 x는 1 ⊕ 1 = 0이므로 n ⊕ x가 설정됩니다. 이는 n ⊕ x가 설정되지 않았음을 의미하므로 이제 n의 각 설정 비트에 대해 순열 수는 2^(설정 비트 수)라는 결론을 내릴 수 있습니다.

Example

의 중국어 번역은 다음과 같습니다.

Example

#include <bits/stdc++.h>
using namespace std;
int main (){
    int n = 3, no_of_setbits = 0;    // initialising n with value and taking count of set bits as 0
    while (n != 0){
        no_of_setbits = no_of_setbits + (n % 2);    // checking if num contains set bit.
        n = n / 2;
    }
    int result = 1 << no_of_setbits;    // calculating no. of possible solution with 2^setbits
    cout << " Number of possible solutions : " << result;
    return 0;
}

Output

Number of possible solutions : 4

Complexity of Program

여기서는 Brute force를 적용하므로 이 접근 방식의 시간 복잡도는 O(n)입니다.

결론

이 기사에서는 여러 가지 해법을 찾기 위해 문제를 해결했습니다. −

n = x + n ⊕ x 또한 이 문제에 대한 C++ 프로그램과 완전한 풀이를 배웠습니다. 이 문제를 해결한 접근 방식을 사용하면 C, Java, Python 및 기타 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.

위 내용은 C++ 프로그래밍을 사용하여 방정식 n = x + n * x에 대한 해의 수를 구합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제