【发布时间】:2021-07-21 01:57:58
【问题描述】:
我正在尝试解决以下等式(x * 0x5DEECE66D + 11) mod 2^47 = 0x310CDAF20000 其中WolframAlpha is able to solve in a few seconds
我想出了下面C++ 代码的琐碎,用& 替换模,遗憾的是效率不够高,需要很长时间才能完成:
auto target = 0x310CDAF20000LL;
auto devider = 0x5DEECE66DLL;
auto mask = 1LL << 48 - 1;
auto i = 1LL;
while (1) {
if ((i * devider + 11) & mask == target) {
printf("%llx", i);
break;
}
i++;
}
有什么建议吗?
【问题讨论】:
标签: performance equation modulo