• ベストアンサー

a mod b = x、c mod d = x

a mod b = x c mod d = x (a,b,c,dは正の整数) という式が与えられ aとbとdの数値が決定している場合に cの値を求める事は可能でしょうか? ただしこのとき 計算途中にxの値を使わずcの値を求めたいのです。(瞬間的にでもメモリ(レジスタ含む)にその数値を書きたくない為) 例えば 49999 % 800 = 399 c mod 1560 = 399 この場合cは50319や51879等あると思いますが49999に近い値が望ましいです。 不可能な場合でも理由をご回答頂ければ幸いです。 宜しくお願いいたします。

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

  • ベストアンサー
  • masudaya
  • ベストアンサー率47% (250/524)
回答No.1

a mod b = x c mod d = x ということは, a=bk+x (1) c=dh+x (2) ということです.(k,h∈N) 今k=int(a/b)を保存できれば(1)-(2)は a-c=bk-dh (3) となり,hを変化させながら|a-c|が最小になる,hを探す. ことで解決可能です. xを使っていいなら a-c=a-dh-x (4) としてhを変化させながら|a-c|が最小になる,hを探す. ことで解決可能です.

sha-girl
質問者

お礼

お答え頂き有り難うございます。 計算式、非常に参考になりました。

その他の回答 (1)

  • nakaizu
  • ベストアンサー率48% (203/415)
回答No.2

No1 の方の回答に付け加えます。考え方は同じです k=int(a/b) h=int(a/d) とします。int は切捨てです。 c=a+dh-bk とすればcを求められます。 ただし、誤差の限界はmax(b,d)ですのでbがdにくらべて大きいときはa にもっとも近いとは言えない場合があります。 その場合はdh-bkが小さくなるようにhを変化させてください。

sha-girl
質問者

お礼

お二方の詳しい回答のおかげで、問題を解決する事が出来ました。 有り難うございます。

関連するQ&A

  • a≡b(mod m),c≡d(mod m)⇒ac≡bd(mod m)の逆は成立つ?

    こんにちは。 参考書に合同式3x+5≡7(mod11)の解き方が載ってまして 3x≡2(mod11) 12x≡8(mod11) x≡8(mod11) とすんなり解かれていたのですが 最後の部分は命題 a≡b(mod m),c≡d(mod m)⇒ac≡bd(mod m) (12≡1(mod11),x≡8(mod11)⇒12・x≡1・8(mod11)) の逆を使ったのかと推測しましたが一般に逆は成立つのですか? それとも別の命題を使われてるのでしょうか?

  • n,a,b,c,dは0または正の整数、

    n,a,b,c,dは0または正の整数、 a^2+b^2+c^2+d^2=n^2-6 a+b+c+d<=n a=>b=>c=>d のとき、これを満たす(n,a,b,c,d)の組をすべて求めよ。 最初にnの値を決めないことには、a,b,c,dも考えられないのでないかと思い nだけの不等式を考えようとしましたが、不等号の向きでうまく押さえられません。 よろしくお願いします。

  • a * x^bとa / x^bは同じ?

    奇妙な質問かもしれませんが。。。 f(x) = 480 * x^-0.80 という関数と f(x) = 480 / x^0.80 という関数は同じものですか?(両関数が返す値は同じものであるということが数学的に示せますか?) もう少しいえば f(x) = a * x^b  (ただしbは負の値) f’(x) = a’ / x^b’  (ただしbは正の値) という2つの関数があった場合、a = a’、b = b’ならば必ずこの2つの関数は(引数xの値が同じとき)同じ値を返しますか?という質問です。

  • 4個の整数、1,a,b,cは、1<a<b<cをみたしている。これらの中

    4個の整数、1,a,b,cは、1<a<b<cをみたしている。これらの中から相異なる2個を取り出して和をつくると、1+aからb+cまでのすべての整数の値が得られるという、a,b,c,の値を求めよ。 問題の意味として、1+aからb+cの真の整数は1も飛ばさずにすべて得られる ということなのでしょうか? 問題の意味すら曖昧でよくわからないです。 解き方を教えてください。

  • (x+a)(x+b)(x+c)(x+d)

    (x+a)(x+b)(x+c)(x+d)の展開を途中の計算式も含めて教えてください

  • 数学Aの場合の数 a<b+1<c+2<d+3?

    はじめまして。 数学Aの確立の解法がわからずに困っています。 問題1 123456789の9つの数字から重複を許して4つ選び、4桁の整数を作る。 千、百、十、一の位をそれぞれa,b,c,dとする。 a≦b≦c≦dである整数 回答 1≦a≦b≦c≦d≦9⇔1≦a<b+1<c+2<d+3≦12 よって12こから4つ選んでそれをa,b+1,c+2,d+3とすることと同値 よって12C4=495 問題2 男子4人と女子3人が横一列に並ぶ。 女子3名をA,B,Cさんとそれぞれする。 女子3名が隣り合わない並び方。 回答 8人の場所を左から12345678として3人の女子の番号をa.b.cとして 1≦a<b<c≦8(差は2以上)⇔1≦a<b-1<c-2≦6 よって6C3=20。これが女子が隣り合わない組み合わせ。 全体を考えて20*3!*5!=14400 という問題です。 それぞれ問題1では1ずつ足していって、問題2では1づつ引いていったということは分かるのですが、問題1では足して2ではひいたのが何故か分かりません。 1をやった後に2を解いたので、「なんでこっちは引いてるの?」って思ったのですが? この≦から<に変える作業はコンビネーションを使えるようにするためにやっていますよね。なら別に足しても引いても変わらないんじゃ…と思ったのですが、違いはなんでしょうか? ------------------------------------------------------------------- また 0 1 2 4 4 5 のカードがある。これを並べて整数を作る時 230000以上の整数はいくつあるか? で 回答は 整数をabcdefとして a=4 5!=120 a=5  5!÷2=60 ab=24 4!=24 ab=25 4!÷2=12 で216なのですが、これってa=4の場合って4は2枚あるので、どちらの4をaに持ってきたかで2通りあるので5!*2にしなくて良いのでしょうか? 長文になってしまいましたが、最後まで見ていただいてありがとうございます。 回答をよろしくお願いします。

  • (a+c)(a-c)=(d+b)(d-b)でa,b,c,dがそれぞれ異なる自然数の時

    (a+c)(a-c)=x (d+b)(d-b)=x とした時、xが成立する最小の自然数は15だというのはわかるのですが、それを証明する術を教えてください。

  • a<y<b c<x<d

    私の愛用している参考書にa<y<b c<x<d なら a-d<y-x<b-c (確か)  と書いてありました。 実際に数を代入して考えたら成り立つのですがいまいちなぜこの式になるのかが分かりません。 誰理解できる方証明の方お願いしますm(__)m

  • a,b,c,d,e,fはすべて0または正の整数とします。

    a,b,c,d,e,fはすべて0または正の整数とします。 a+b+d=10 a+e=9 b+f=6 c+d=5のとき 5a+3b+11c+8d+12e+4fの最小値はいくらですか

  • c=(x-a)*(1/x)^b のxの値は

    c=(x-a)*(1/x)^b のxの値は何になりますか?