次の式を検討してください。
(a - b) mod N
次のうち、上記の式に相当するものはどれですか?
1) ((a mod N) + (-b mod N)) mod N
2) ((a mod N) - (b mod N)) mod N
また、(-b mod N) はどのように計算されますか。つまり、負の数の mod はどのように計算されますか?
ありがとう。
次の式を検討してください。
(a - b) mod N
次のうち、上記の式に相当するものはどれですか?
1) ((a mod N) + (-b mod N)) mod N
2) ((a mod N) - (b mod N)) mod N
また、(-b mod N) はどのように計算されますか。つまり、負の数の mod はどのように計算されますか?
ありがとう。
複雑な数学的概念で煩わされたくないので、簡単にしようと思います。a = b (mod c) と言うとき、単に ab が c の倍数であると言うだけです。これは、mod c の値を知りたい場合、それが a または ac または a+c または a+1000*c であると言って、真であることを意味します。したがって、2 つの式は有効です。
しかし、あなたが知りたいのは、コンピューターがあなたに与える答えを知ることですよね? まあ、それはあなたが使用している言語に依存します。たとえば Java では、a mod b は a の符号を持ち、絶対値は b より厳密に劣っています。つまり、a = 7、b = 3、N = 5、(ab)%N = 4 の場合、2 つの式は -1 を返します。
モジュロを使用して算術演算を行いたい場合は、独自の mod 関数を作成することをお勧めします。たとえば、常に正の整数が得られます。このようにして、2 つの式は常に元の式と等しくなります。
疑似コードの例:
function mod (int a, int N)
return (a%N+N)%N
答えは選択肢a
説明を参照してください
http://naveensnayak.wordpress.com/2009/12/21/modulus-of-negative-numbers/
http://answers.yahoo.com/question/index?qid=20080922034737AAsFEfY