問題タブ [lcm]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - C の double を含む最小公倍数
どちらも 2 * 10 ^ 9 を超えない 2 つの数値の最小公倍数を計算するように求められる Coursera クラスの割り当てを行っています。これを C で作成し、コードを実行しています。数字 226553150 と 1023473145 のテスト ケース。答えは 46374212988031350 ですが、46374212988031344 が得られ、6 ずれています!
以下に投稿したものと本質的に同じアプローチを使用する正しいソリューションをPythonで作成しましたが、数値精度の詳細は明らかに私のために処理されます。これを SO に投稿して、C の浮動小数点精度について学習します。インターネットで見た質問のほとんどと、LCM に関する SO は整数のみを扱っているためです。
ここに私がコンパイルしている私のコードがありますgcc -pipe -O2 -std=c11 lcm.c
:
javascript - ランダムな組み合わせの最小公倍数
TLDR:数値の可変配列に対して可能な限り最小の最小公倍数を返すアルゴリズムを探しています:
- 数字の一つ
- 私の配列のサイズ
- 数値に可能な最小値と最大値
私は音楽アプリを使用していますが、アルゴリズムの問題があります: 異なるリズム (それぞれ異なるステップ数) を混合する場合、結果がループするために結果のステップ数を計算する必要があります。これは、最小公倍数の計算を使用して簡単に実行できます。さまざまな長さをすべて段階的に含む lengths 配列があると仮定しましょう
次に、次の仮説の最小ステップ数を計算する関数が必要です。
- 可能なステップの長さは制限されています (私の場合は 2 から 11 の間で、変更される可能性があります)。
- ステップの長さの値はすべて異なっていなければなりません
- 1 つの長さの値が既知です (変数になります)
- lengths 配列のサイズはさまざまです (私の場合は 1 から 4 の間で、変更されません)。
だから私が求めているのは、次のような関数です。
たとえば、minPossibleLength(4,4) は 24 を返す必要があります (長さが [2, 4 ,8,3] または [2, 4 ,8,6] の場合)
今、私はそれを力ずくで試し、すべての可能な長さの組み合わせをループして最小の lcm を見つけました。
どうも
javascript - で割り切れる最小公倍数
私は JavaScript で作業しており、2 つの数値の最小公倍数を解決しています。最小公倍数は、2 つの数値の間のすべての数値で割り切れる必要があります。
現在、私のコードはまったく機能しておらず、何も返されていません。最小公倍数を計算する 1 つの関数と、その倍数が最小数と最大数の間の数で割り切れるかどうかを判断する 2 つ目の関数がありました。
python - 最小公倍数を見つける際のpythonの長整数除算エラー
通常、プログラムは小さい場合はエラーをスローしませんが、これらの数値になると間違った除算結果を返します
私が書いた説明:
greatestCommonDivisor
そのため、ユークリッド法を使用して見つけたwhileループで
そして、私は式を使用しました(LCM = n1*n2/ GCD )
問題を明確に説明したことを願っています。この問題を解決するにはどうすればよいですか?
c++ - 値が大きい場合の答えのオーバーフロー
次の式を使用して、数値の LCM を見つけようとしています。Lcm = Gcd/(a*b)。これは小さな数では問題なく動作しますが、コードに示されているように、大きな数ではオーバーフローします。変数の型として long long を使用しようとしましたが、まだ効果がありません。オーバーフローの問題を修正するにはどうすればよいですか?
python - Pythonでの多数のLCM
「2つの数値の積はGCDとLCMの積に等しい」という公式を使用しています。
これが私のコードです:
少数の場合はうまく機能します。しかし、私が入力を与えるとき:
入力: 226553150 1023473145
私の出力: 46374212988031352
正しい出力: 46374212988031350
どこが間違っているのか教えてください。
javascript - JavaScript 整数オーバーフローの回避策
JS で多数の算術演算を実行する必要があります。この特定のケースでは、次のようになります。
期待される結果は 76669557221078478 ですが、整数オーバーフローのために 76669557221078460 が返されます。
この環境では、ライブラリを含めることはできません。このような計算を処理するための回避策はありますか?
その理由: 次の式を使用して、これらの数値の最小公倍数を見つけようとしています。
LCM(, )·GCD(, ) = · ここで、LCM は最小公倍数、GCD は最大公約数です。
私の計算は( a / gcd ) * b
です。
python - Pythonを使用してLCMを見つける
def multiple(a, b): """したがって、a と b の両方の倍数である最小の数 n を返そうとしています。
例えば:
複数 (3, 4) 12 複数 (14, 21) 42 """
インデントとロジックに関するエラーをスローし続けます。理由がわかりません。私も変数を変えてみました。