이 기사에서는 방정식 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
#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; }
Number of possible solutions : 4
이것은 무차별 방법을 적용하여 n = x + n ⊕ x에 대한 해의 수를 찾는 간단한 C++ 프로그램입니다.
이 방법에서 n의 이진 형태를 보면 1로 설정된 비트 수를 찾아야 하는데, 방정식에 따르면 n이 설정된 경우라고 할 수 있습니다. 이면 x는 1 ⊕ 1 = 0이므로 n ⊕ x가 설정됩니다. 이는 n ⊕ x가 설정되지 않았음을 의미하므로 이제 n의 각 설정 비트에 대해 순열 수는 2^(설정 비트 수)라는 결론을 내릴 수 있습니다.
#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; }
Number of possible solutions : 4
여기서는 Brute force를 적용하므로 이 접근 방식의 시간 복잡도는 O(n)입니다.
이 기사에서는 여러 가지 해법을 찾기 위해 문제를 해결했습니다. −
n = x + n ⊕ x 또한 이 문제에 대한 C++ 프로그램과 완전한 풀이를 배웠습니다. 이 문제를 해결한 접근 방식을 사용하면 C, Java, Python 및 기타 언어로 동일한 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.
위 내용은 C++ 프로그래밍을 사용하여 방정식 n = x + n * x에 대한 해의 수를 구합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!