- ベストアンサー
mod について
modについて以下の使用例での役割を教えてください。 除算の余り(?)とは知っているんですが・・・ 今、頂点Vが6点あります。(i=1~6)(N=6) それらは円に並んでいて点と点の間は直線で結ばれています。 dはそれらの線分の平均です。 Eは頂点の曲率です。 E = d - | V(imodN) - V((i-1)modN) | (i-1)はi点の隣の点です。 Eを小さくすることで線分を丸く円形にしようとしています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
えっと、(i=1~6)は単にiの値域を表しているかの様な表現なので、 Vの定義域を0~5と仮定します。 また、文章中からVはベクトル値と解釈します。 そうすると、 | V(imodN) - V((i-1)modN) | で隣接する点の間の 距離を表すスカラー値になりますよね。 即ち、 i=1 |V(1)-V(0)| i=2 |V(2)-V(1)| i=3 |V(3)-V(2)| i=4 |V(4)-V(3)| i=5 |V(5)-V(4)| i=6 |V(0)-V(5)| もし、これが| V(i) - V((i-1)) |で定義されていたら、 i=1 |V(1)-V(0)| i=2 |V(2)-V(1)| i=3 |V(3)-V(2)| i=4 |V(4)-V(3)| i=5 |V(5)-V(4)| i=6 |V(6)-V(5)| となり、i=6の時、Vの定義域を超えたV(6)が発生してしまい、 これは不定となり、i=6の時、この関数の値は不定となってしまい ませんか? つまり、循環させるためだと思うんですが、如何でしょうか?
その他の回答 (1)
- VRAM
- ベストアンサー率25% (42/162)
MODをループにに使用しているみたいですね。 単純に i mod 6を考えれば簡単です。 iが増えるにつれ (0),1、2,3,4,5,6,0,1,2,・・・ のようになります。 直線的に増えていくiに対してmodの結果は 一定範囲をループする数になります。 modの使い方は他に n - (i mod n) x = ------------------------- n なんていう面白い使い方があります。