zoukankan      html  css  js  c++  java
  • 除余取模的算术变化特点,模的变化特点

    前言

      这是一篇我记在 麦库 上的笔记,现在移动到博客园来。

    i%x  的结果一定是 0~x-1 内。且随着 i 整数的顺序递增或递减。 其也在 0~x-1 的范围内周期变化。

    相比于 i/x  i%x, 当i整数 循序递增或递减时,i/x 的结果变化1时,i%x 的结果变化 一个周期。

    例如: i=81;

    then  i/9  =9;

    and  i%9=0;

    i--;

    i/9=8;

    i%9=8;

    i--;

    i/9=8;

    i%9=7;

    i--;

    i/9=8;

    i%9=6;

    分析 由于 i/9  可以得知i 为9的倍数,如果变化率没有相对于除数的倍数变化,则除的结果是不会变化的,而被除数的变化则反映到了余数上。

    示例:

    中国象棋中 将帅 组合问题(求出将帅位置组合) 解法应用:

    int i=81;

    while(i--)

    {

        if(i/9%3==i%9%3)

            continue;

        printf("A=5d,B=%d\n",i/9+1,i%9+1);

    }

    解析:

    由于i=0对将帅的位置程序编号为: 

    0 1 2

    3 4 5

    6 7 8

    =====

    0 1 2

    3 4 5

    6 7 8

    可看出将帅的位置组合为  9×9 =81 钟

    判断将帅是否在同一纵轴上 可以用  x%3==y%3 的方法。

    i/9 表示了, 0~8 的变化范围,由上面的规律可以知道。

    当 i递减时, i/9 变化一次 ,i%9 变化9次 即一个周期, 而这刚好是固定将A 的位置, 而帅B 所有位置都走一遍的组合。

    因此 i/9%3==i%9%3 表示 两者在同一纵轴上。

    (i/9,i%9)

    就是所有的81总组合。

  • 相关阅读:
    ammap demo
    sql批量新增和修改
    js右键菜单
    C# 索引器
    NUnit使用体会
    js拖动效果
    Js 原型对象与原型链(转)
    sql for xml子句
    ASP.NET应用程序生命周期
    HttpWebRequest和HttpWebResponse
  • 原文地址:https://www.cnblogs.com/keyindex/p/2618881.html
Copyright © 2011-2022 走看看