• ベストアンサー

小数点第一位まである数字、12個の最小公倍数を出すプログラムをExce

小数点第一位まである数字、12個の最小公倍数を出すプログラムをExcelで作りたいのですが、どうやったら良いのでしょうか? わかる方いらっしゃいましたら教えてください。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • BookerL
  • ベストアンサー率52% (599/1132)
回答No.2

 最小公倍数というのは整数についての概念です。 http://ja.wikipedia.org/wiki/%E5%85%AC%E5%80%8D%E6%95%B0 より >公倍数(こうばいすう)とは、2つ以上の正の整数の、それらに共通する倍数のことをいう  小数でそのようなことをするなら、そこで使う「最小公倍数」の定義が必要です。  例えば、2 と 2.5 の最小公倍数は、いくらになればいいのでしょう。 2の整数倍 2 4 6 8 10 12 …… と 2.5の整数倍 2.5 5 7.5 10 12.5 …… とで共通する最小の数とすれば 10 ということになりますが、 小数第1位までの数を扱うということでやっているのならば、 2の「小数第1位までの数」倍 つまり、0.1倍、0.2倍 …… を考えて  0.2 0.4 0.6 0.8 1 1.2…… 2.5の「小数第1位までの数」倍 ただし、かけた結果が小数第1位までの数とすると 0.2倍、0.4倍……を考えて  0.5 1 1.5 …… とで共通する最小の数は 1 ということになります。  他にも考え方があるかも知れません。  ということで、「小数第1位までの数の最小公倍数」の定義を示してください。

noname#123938
質問者

お礼

最小公倍数は整数についての定義だったのですか。 基本がなっていませんでした。 ありがとうございました。

その他の回答 (1)

  • ASIMOV
  • ベストアンサー率41% (982/2351)
回答No.1

12個全体の最小公倍数ということですよね その数列が、ある程度規則的な並びなら何とか成りそうですが、ランダムな数だと、Excelで計算できる桁の限度を超える可能性が有ります 図は、適当な数を設定して計算したものですが、10個めでオーバーフローしてしまいました 一応、計算方法... 少数では計算できないの下駄を履かせて(10倍して)整数にして計算します 12個一度には出来ないので、2個づつ行います 計算は下記のユーザー関数を標準モジュールに書き込みます ---------------------------------- Function flcm(x As Long, y As Long) As Long   Dim g As Long   g = fgcm(x, y)   flcm = x / g * y / g * g End Function Function fgcm(a As Long, b As Long)   Dim r As Long, tmp As Long, z As Long   If a < b Then     tmp = a: a = b: b = tmp   End If   r = a Mod b   If r = 0 Then     z = b   Else     z = fgcm(b, r)   End If   fgcm = z End Function -------------------------- D3 =flcm(C2,C3) D4 =flcm(C4,D3) として、以下コピーします E列は1/10にして、桁を元に戻しています

関連するQ&A

専門家に質問してみよう