假设我有一个函数将一个米m-bit 无符号整数一个a由一个nn-bit 无符号整数bb并将商作为定点数返回tt小数位,向零截断。所以我有f(a,b)=2−t⌊2t⋅(a/b)⌋f(a,b)=2−t⌊2t⋅(a/b)⌋, 和0≤a<2m0≤a<2m和0<b<2n0<b<2n.
什么是最小的tt这将保证f(a1,b1)=f(a2,b2)f(a1,b1)=f(a2,b2)除非a1/b1=a2/b2a1/b1=a2/b2? 也就是说,我需要多少小数位来保持排序?
认为m≥nm≥n. 考虑函数
恐怕我没有理论支持,但基于蛮力测试,我发现t=2nt=2n从不产生碰撞(对于nn取决于2020), 然而t=2n−1t=2n−1总是这样。