-1

変数 x (サンプル レート) があり、並列コム フィルタリング用に 1:1.5 の比率を持つ 4 つの遅延時間 (サンプル単位) を作成するとします。以下の例では、コム フィルターの時間が 30 ミリ秒から 45 ミリ秒まで異なります。x/1000 = a a*30 = i a*35 = j a*40 = k a*45 = n 最初の数値 i は最も近い整数に切り上げる必要があります。2 番目の数値 j は、i との公約数を持たない整数に切り上げられる必要があり、k は、i と j の両方との公約数を持たない整数に切り上げられる必要があります。したがって、すべての数値 j、k、および n を切り上げて、i との公約数を持たないようにするアルゴリズムを探しています。

私たちが抱えている本当の問題は、2つの数値の共通の NONE 約数を見つける簡単な方法を見つけることではありません.Googleで検索すると、この結果はすべて共通の約数の説明になります...誰かがそのビットだけを説明できれば、とにかく残りは簡単です.

よろしくお願いします

4

1 に答える 1

5

それぞれの次の素数を単純に計算できます。これは、公約数を持たない任意の数を見つけようとするよりも高速になる可能性があります。あなたのアプリケーションの規模はわかりませんが、規模xがかなり小さければ、次の素数を 3 回計算するのにほとんど時間はかかりません。

0 から 1,000,000 までの素数は 78,500 個しかありません。これらすべてを簡単に生成して、テーブルに格納できます。次に、ある値を指定すると、バイナリ検索により、その値よりも大きい次の素数が得られます。したがってa*45、1,000,000 を超えることを期待しない場合は、次の数値を取得するための非常に迅速な方法を使用できます。確かに、素数を格納するには少しメモリが必要です。

または、0 から a*45 の後の素数まですべての素数を生成できます。これには少し時間がかかりますが、これを頻繁に行う必要がない場合は、おそらく完全に受け入れられる解決策です。特に、後で行う処理が、いくつかの素数を計算するよりもはるかにコストがかかる場合.

もう少し詳しい情報については、間違ったことを最適化するを参照してください。

于 2013-11-05T16:35:25.950 に答える