Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


58107 / 76738 ←次へ | 前へ→

【23363】Re:VBAで
質問  nekokai  - 05/3/19(土) 17:52 -

引用なし
パスワード
   G-Luckさん

返信ありがとうございます。
VBAでスクリプトを作動させる必要はなく、仰る通りエクセル関数またはエクセルVBAで同じような計算結果が得られれば、それで問題ありません。

スクリプトの意味とVBAでしたい作業のぐ具体的な内容ですが、要するにスクリプトの内容は「連立合同式の解」の計算で、その計算結果をエクセルのシート上に表示させたいということです。

x≡a(mod m)
x≡b(mod n)
x=K
↑ これが連立合同式です。

式をエクセルのシートに書き込んでおいて、「a b m n」のセルに数字を入力すると「K」のセルに「解」の計算結果が表示されれば問題ありません。
連立合同式における計算結果は基本的にすべて「整数」です。

「解」を得るための計算式がスクリプトの内容なのですが、
「a b m n」の計算を「j」としてその解を「k」に表示させる形式をとっています。
計算式が
j=m1(nk+b-a)
の部分です。
表記しづらいのですが、1/m*(n*k+b-a) が計算式となります。
これを、整数の値がでるまでループして整数値がでたらループから抜ける、という内容です。なぜループするかというと、連立合同式の一般解は、
x≡a(mod m)
x≡b(mod n)
の場合、mとnの最小公倍数+k という形になり、この「k」を解として表示させます。
よって(n*k+b-a)がmで割って「1」余る「k」が得られるまで
(例えば1〜1000までを範囲として)
ループすることになります。

あまり巧くない説明ですみません。
具体的な計算例は以下のようになります。
x≡1(mod 4)
x≡7(mod 11)
x=77+15

77が4 11の最小公倍数でK=+15となります。
これをエクセルまたはエクセルVBAで計算および表示が可能であれば、よろしくお願いします。

0 hits

【23300】VBAで nekokai 05/3/18(金) 15:06 質問
【23353】Re:VBAで G-Luck 05/3/19(土) 9:28 発言
【23363】Re:VBAで nekokai 05/3/19(土) 17:52 質問
【23366】Re:VBAで G-Luck 05/3/19(土) 19:09 発言
【23367】Re:VBAで G-Luck 05/3/19(土) 19:24 回答
【23377】Re:VBAで G-Luck 05/3/20(日) 10:52 発言
【23380】Re:VBAで ichinose 05/3/20(日) 11:00 発言
【23412】Re:VBAで nekokai 05/3/22(火) 11:30 お礼
【23423】Re:VBAで ichinose 05/3/22(火) 19:06 発言
【23433】Re:VBAで nekokai 05/3/23(水) 9:59 お礼

58107 / 76738 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free