나는 몇 개의 작은 소수의 산물 인 매우 큰 숫자를 가지고있다. 나는 숫자를 알고 또한 중요한 요소를 알고 있지만 나는 그들의 힘을 모른다. 예 :숫자의 힘을 찾는다
(2^a)x(3^b)x(5^c)x(7^d)x(11^e)x .. = 2310
이제 지수를 매우 빠르고 효율적으로 복구하려고합니다. FPGA로 구현하고 싶습니다.
감사합니다,
나는 몇 개의 작은 소수의 산물 인 매우 큰 숫자를 가지고있다. 나는 숫자를 알고 또한 중요한 요소를 알고 있지만 나는 그들의 힘을 모른다. 예 :숫자의 힘을 찾는다
(2^a)x(3^b)x(5^c)x(7^d)x(11^e)x .. = 2310
이제 지수를 매우 빠르고 효율적으로 복구하려고합니다. FPGA로 구현하고 싶습니다.
감사합니다,
문제는 당신이 이진 검색을 수행해야 올바른 전원에 대한 선형 검색을하고 있다는 것입니다. 다음은 p의 지수가 10 인 경우를 보여주는 예제입니다 (p^10). 이 방법은 O (N) 대신에 O (log N) 개의 구획에서 힘을 찾는다.
처음에는 5 단계에서 발생하는 너무 높은 전원을 빠르게 증가시켜 상한선을 찾으십시오. 그런 다음 이진 검색을 사용하여 실제 전력을 찾습니다.
참고 인 저가형 될 , 단계 4에서 p^(1 + 2 + 4 + 8) = p^15로 숫자를 실제로 나누었지만 이진 검색 부분을 설명하는 것이 조금 더 어렵습니다. 그러나 분할되는 숫자의 크기가 작아 지므로 분할 작업이 더 빠릅니다.
고맙습니다. 도움이됩니다. – hassicho
안녕하십니까. 해결책을 제시해주십시오. 우리는 당신을 위해 일하기 위해 여기에 온 것이 아닙니다. – LeonardBlunderbuss
내가 시도한 것은 소수를 반복적으로 unitl 단위로 나누는 것이다. 그때 나에게 힘을주는 각 요인에 대한 분열의 수를 세지. 하지만 제가 언급 한 것처럼 제품이 매우 거대 해지면 이것은 실용적이지 않습니다. – hassicho
2310을 2 회 이상 'a'회 이상 반복해서 나누면 일부 분수로 끝납니다. 그러나 'a'까지, 당신은 0 분수를 얻을 것입니다. 카운팅이 도움이되지만 너무 느립니다. – hassicho