Montgomery multiplication의 구현을 파이썬으로 작성하려고합니다. 파이썬에서 GMP의 mpz_getlimbn()
과 동등한 내용이 필요하지만, 내 삶 에선 찾을 수없는 것 같습니다.Python에서 Python을 길게 늘리십시오.
도움을 주시면 감사하겠습니다.
편집
내가 구현 한 다음 그러나 나는 GMP 발생하지 않는 사지에 대한 범위 부족 오류가 인덱스를 얻을.
def unpack(x, b):
if gmpy2:
return [long(x) for x in gmpy2.unpack(gmpy2.mpz(x), b)]
b = 2 ** b
r = []
while x:
x, temp = divmod(x, b)
r.append(temp)
return r
이것은 공개 API의 일부가 아닙니다. 도달해야 할 구현 세부 사항은 http://hg.python.org/cpython/file/db842f730432/Include/longintrepr.h를 참조하십시오. – user2357112
@ user2357112 답장을 보내 주셔서 감사합니다. Cython을 사용하지 않고이 문제를 해결할 방법이 있습니까? 아니면 유일한 경로입니까? – Prydie
여기에서 사용할 적절한 도구인지 Cython에 대해 충분히 알지 못합니다. 나는 C를 직접 쓰는 관점에서 생각하고 있었다. – user2357112