Excel VBA質問箱 IV

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

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


58053 / 76732 ←次へ | 前へ→

【23412】Re:VBAで
お礼  nekokai  - 05/3/22(火) 11:30 -

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

お二人ともありがとうございます。
合同式に関する私の説明が拙く、解りづらかった事と思います。
私はVBA初心者なので、逆にお二人のVBA記述がなかなか理解できませんが。(笑)
とりあえず試してみようと思います。

合同式のスクリプトに関する理解は、ichinoseさんのご理解の方が正しいような気がします。そこでお二人にお願いなのですが、VBAで書いたマクロのエクセルシートを直接ファイル添付で送信して頂けないでしょうか?私がこれから書くと非常に時間が、、、、(汗)。
実は、合同式の解を求める連立は2元と3元両方必要で、もう一度簡単にご説明します。

1)合同式が2つの場合。

x≡ 1 mod 7
x≡ 4 mod 11
のとき、一般解はx=77p+15 となります。
mとnの最小公倍数+kという形ですが、pは任意の整数です。

合同式の基本定理
x≡y (mod m)において x=y+pm になるという形式です。
これが、合同式2つになると
x≡ a mod m
x≡ b mod n
のとき、x=LCM(m,n)p+k
となります。
よつて、求めたい整数kは
(n*k+b-a)がmで割って「1」余る[「k」として計算されます。
なので、ichinoseさんに理解して頂いたとおり
「つまり、0〜最小公倍数-1の数値の間で
mで割ってあまりがaかつ、nで割ってあまりがbになる値を求める方法です」
で正解かと思われます。

よって
x≡ 1 mod  7
x≡ 4 mod 11
congruence(7,11,1,4)=15 と LCM(7,11)=77
で一般解は
x=77p+15

2)合同式が3つの場合 例えば

x≡ 2 mod 3
x≡ 3 mod 5
x≡ 2 mod 7
まず
x≡ 2 mod 3
x≡ 3 mod 5
の一般解congruence(3,5,2,3)=8 と LCM(3,5)=15 を求めます。
次に
x≡ 8 mod 15
x≡ 2 mod 7
としたうえで、2つの合同式の場合と同じように
x≡ 8 mod 15
x≡ 2 mod 7
congruence(7,15,2,8)=23 と LCM(15,7)=105を求めて
x=105p+23
となります。

できれば、上記2つのVBAがマクロで作動するエクセルブックを2つ、下記アドレスまでご送信頂けると助かります。
セルの場所はA1からそれぞれ
x≡a(mod m)
x≡b(mod n)
x=K

x≡a(mod M)
x≡b(mod L)
x≡c(mod N)
x=K

という形でかまいません。よろしくおねがい致します。

sattshi_2005@mail.goo.ne.jp
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 お礼

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