함께 곱할 때 정확한 비트 패턴을 생성하는 두 값을 찾는 쉬운 방법이 있습니까?
-
07-07-2019 - |
문제
테스트 목적으로 특정 비트 패턴을 사용하여 128비트 중간 값에 정확히 곱해지는 두 개의 64비트 정수 값을 찾아야 합니다.분명히 원하는 중간 값을 생성하고 작동하는 조합을 찾을 때까지 임의의 값으로 나눌 수 있지만 더 효율적인 방법이 있습니까?
해결책
이 문제는 다음과 같습니다 정수 인수분해.불행히도 빠른 알고리즘은 알려져 있지 않지만 Wikipedia 페이지를 살펴보면 시험 분할보다 빠른 (어쩌면 까다로운) 알고리즘이 있는 것 같습니다.
다른 팁
나는 j_random_hacker와 같은 것을 게시하려고했다. 128 비트 수가 프라임이거나 64 비트보다 큰 주요 요인이 있으면 문제에 대한 해결책이 없을 것이라고 덧붙였습니다.
그리고 나는 이전 주석에 추가 할 것입니다. 128 비트 수가 64 비트보다 큰 프라임 팩터가 있다면 확실히 64 비트 미만의 계수가 있습니다 :)
제휴하지 않습니다 StackOverflow