• 不同编程语言的取模运算%


    取模运算即两数相除的余数。假设a/b = q...r,其中q是商,r是余数。则满足a=b*q+r,其中|r|<|a|。

    如果a、b都为正,则r为正;

    如果a、b都为负,则r为负;

    如果a、b一正一负,则不同的语言会有所不同。

    C/Java:

        取模运算符%只接受整型操作数,且取模运算的结果的符号与第一个操作数的符号相同(或为0)。

        比如: (-1) % 2 = -1.

          (-12) % 5 = (-12) - (-2*5) = -2

    Python/Perl
      取模运算符%运算的结果的符号与第二个操作数的符号相同。

      比如: (-1) % 2 = 1

          (-12) % 5 = (-12) - (-3*5) = 3

    Python和Perl的这种处理和我们想象的有点不同,但在某些情况下会很好用,特别是环形数据取模。比如对角度取模,如果要求最终数据是(0,2*pi),但输入数据R为任意值(即可能大于2*pi,也可能为负值),取模示例:

    5*pi/2 --> 2*pi + pi/2 --> pi/2

    -pi/2 --> -pi/2 + 2*pi --> 3*pi/2

    此时,使用Python或Perl,可以直接使用R%(2.0*pi)即可。

    再举一例:

    p=[1,2,3,4,5,6]

    则:p[-2] = 5(-2指示列表倒数第二个值),

    p[(-2)%(len(p))] = p[4] = 5,

    即p[-2]=p[4]=p[-2%len(p)]

  • 相关阅读:
    Window 命令
    HTTP 状态码
    Mysql基本用法-存储引擎-04
    Mysql基本用法-存储引擎-03
    Mysql基本用法-left join、right join、 inner join、子查询和join-02
    Mysql基本用法-01
    二进制编码-详细讲解
    JS操作文件
    PHP5接口技术入门
    PHP5中__get()、__set()方法
  • 原文地址:https://www.cnblogs.com/yuyan/p/2404391.html
Copyright © 2020-2023  润新知