pythonのモジュロ演算をいじっていますが、残りが何であるかを吐き返すことを理解しています。
しかし、最初の数値が2番目の数値より小さい場合はどうでしょうか?
例えば
2%5の答えは2です。
それはどのように機能しますか?
2/5 = .4
これは役立ちますか
22 % 5 = 2
17 % 5 = 2
12 % 5 = 2
7 % 5 = 2
2 % 5 = 2
たぶんこれ
22 / 5 = 4 + 2/5
17 / 5 = 3 + 2/5
12 / 5 = 2 + 2/5
7 / 5 = 1 + 2/5
2 / 5 = 0 + 2/5
5は2回ゼロになります。
5 * 0 = 0
2-0 = 2。
答えは2です
2を5で割った値(整数の除算)は0で、余りは2です。
2 = 0 x 5 + 2
たとえば、2%5の答えは2です。それはどのように機能しますか? 2/5 = .4!
モジュロは本質的に整数の結果を生成しますが、除算は整数または浮動小数点演算になります。 2/5が0.4であるという観察は、浮動小数点の観点から考えていることを示しています。その場合、.4自体is剰余は、異なる表現で表されます。 「0.4」の整数部分は「0」で、残りの部分は「.4」です。整数除算演算の残りの部分は、浮動小数点演算の小数部分(または口語的には「10進数」)とまったく同じものであり、表現方法が異なります。
例の小数部である0.4は、0.4または2/5(2/5)と表現できます。どちらにしても同じことです。 2/5と書かれている場合、小数部の分母(除数)は元の問題の分母(除数)と同じですが、小数部の分子(被除数)は整数除算の「剰余」。あなたがそれを見ると、商のfractional partと、remainderは同じことを表します(除数除数で均等に除算できない部分)。
最初の数値が小さい場合、モジュロの結果を理解するのは本当に簡単です。結果は常に最初の(より小さい)数値と等しくなります
3 % 5 = 3
5 % 10 = 5
78 % 112 = 78
自分で試してみてください。
2/5 = 0と考えて、残りの2を5にしてください。
最初の数字が小さい場合、答えはその最初の数字です。
2番目の数値は大きいため、最初の数値に0回「入り」、残りはこの最初の数値全体になります。
編集:このスレッドを再訪、私はこの演算子が何のためだったのか覚えていなければなりませんでした。ここでこの他のスレッドを参照しました:
残りの分子は、分子が分母よりも大きいか小さいかに関わらず、モジュロ答え何があってもです。
12 % 5 = 2 , because 12 / 5 = 2 and **2**/5
9 % 2 = 1 , because 9 / 2 = 4 and **1**/2
これはもっと理にかなっているかもしれません。
5 % 89 = 5 , because 5 / 89 = 0 and **5**/89
5 % 365 = 5 , because 5 / 365 = 0 and **5**/365
5 % 6 = 5 , because 5 / 6 = 0 and **5**/6
別の注意点は、最初の数(a)が負の数である場合、答えは常に2番目の数と最初の数(n-a)の差であるということです。
例:a%n
両方の数値が負の場合、答えは常に負の数値になり、小さい方の数値に等しくなります。
a%b = a if a << b
a%b = a/b=c,
c*b=d,
a-d=modulo;
これは、pythonが2つの数値をmodしている間に行うことです。小さな数値と大きな数値の間のモジュロは、常に小さな数値になります。
5
に近づくために2
を掛ける数はありません。
言い換えると、0
という式を満たすには、x
が5*x + r = 2
でなければなりません。
MODは10進数では機能しません... MOD(A、B)uはA
モジュラー演算を理解するには、カーンアカデミーに行って、それについての投稿を読むことをお勧めします。また、同じページにインタラクティブな練習問題があります。リンクは次のとおりです。 https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
要するに:
次の方程式を使用します。
A = BQ + R
[〜#〜] a [〜#〜]はdividend
[〜#〜] b [〜#〜]は除数
[〜#〜] q [〜#〜]はquotient
[〜#〜] r [〜#〜]は、剰余 、およびモジュロの結果です。
Q =(A/B)
Qは常に最も近い最小の整数になります。 Q = 0.2の場合、Q = 0.0になります。 Q = -1.2の場合、Q = -2.0。
ご質問の場合:
Q =(2/5)= 0.4、したがってQ = 0.
それを「A = BQ + R」に差し込みます。
2 = 5 * 0 + R
したがって、R = 2。
お役に立てれば。先ほど言ったように、カーンアカデミーについて詳しく読むことができます。リンクは次のとおりです。 https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic