Aus*_*yde 2 math hash greatest-common-divisor
我正在尝试为Euclid找到两个数字的GCD的方法编写一个简单的缓存机制:
gcd(a,0) = a
gcd(a,b) = gcd(b, a % b)
Run Code Online (Sandbox Code Playgroud)
请注意gcd(a,b) == gcd(b,a).
对于缓存,我需要找到给定的密钥,(a,b)或者(b,a)使用0 < a < 20和0 < b < 20.
当然,我可以使用key = a*20 + b,或者key = a + b*20,但是那些是不对称的 - 关键(1,5)是不同于(5,1).
我怎么能实现这个?