-1

假设我们有一个变量 x(采样率),并将产生 4 个延迟时间(以采样为单位),其比率为 1:1.5,用于并行梳状滤波。在下面的示例中,梳状滤波器时间从 30 到 45 毫秒不等。x/1000 = a a*30 = i a*35 = j a*40 = k a*45 = n 第一个数字 i 应该四舍五入到最接近的整数。第二个数 j 应向上舍入为与 i 没有任何公因数的整数,并且 k 应向上舍入为与 i 和 j 都没有任何公因数的整数,依此类推。所以我正在寻找一种算法,可以将所有数字 j、k 和 n 舍入,使其与 i 没有公约数。

我们遇到的真正问题是没有找到一种简单的方法来找到两个数字的共同 NONE 除数,因为当你用谷歌搜索时,这些结果都是对公约数等的解释......如果有人能解释这一点,那么剩下的就是小菜一碟.

非常感谢你提前

4

1 回答 1

5

您可以简单地计算每个素数的下一个素数,这可能比尝试找到一些没有公因数的任意数更快。我不知道x您的应用程序中的规模是多少,但如果它相当小,那么计算下一个素数三遍几乎不需要时间。

在 0 到 1,000,000 之间只有 78,500 个质数。您可以轻松地生成所有这些并将它们存储在一个表中。然后,给定某个值,二分搜索将为您提供下一个大于该值的素数。因此,如果您从未期望a*45大于 1,000,000,您可以通过一种非常快速的方法来获取下一个数字。当然,存储质数需要一点内存。

或者,您可以生成从 0 到 a*45 之后的所有素数。这样做需要一点时间,但如果您不必经常这样做,这可能是一个完全可以接受的解决方案。特别是如果您之后要进行的处理比计算几个素数要昂贵得多。

有关更多信息,请参阅优化错误的东西。

于 2013-11-05T16:35:25.950 回答