<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java取模和取余,你真的弄懂了嗎?

      前言

      Java 中常見的取模和取余(求余)計算,在我們?nèi)粘5暮芏鄻I(yè)務(wù)領(lǐng)域都有用到。比如當(dāng)我們做數(shù)據(jù)加密時,密碼學(xué)中不同的加密方案底層會采用不同的模運(yùn)算來決定其復(fù)雜度;做游戲的同學(xué)游戲引擎中的取余求最高點(diǎn);銀行金融系統(tǒng)計算中間件開發(fā);隨機(jī)函數(shù)、一致性Hash等等。

      問了辦公室同樣做開發(fā)幾年的同事,居然對兩者區(qū)別毫不知曉。轉(zhuǎn)問辦公室另一即將科班畢業(yè)研究生,對概念也是模糊不清。于是決定總結(jié)一下,寫下這篇文章。

      概念

      通常取模運(yùn)算也叫取余運(yùn)算,它們返回結(jié)果都是余數(shù) .remmod 唯一的區(qū)別在于:

      當(dāng) x 和 y 的正負(fù)號一樣的時候,兩個函數(shù)結(jié)果是等同的;當(dāng) x 和 y 的符號不同時,rem 函數(shù)結(jié)果的符號和 x 的一樣,而 mod 和 y 一樣。

      這是由于這兩個函數(shù)的生成機(jī)制不同,rem 函數(shù)采用 fix 函數(shù),而 mod 函數(shù)采用了 floor 函數(shù)(這兩個函數(shù)是用來取整的,fix 函數(shù)向 0 方向舍入,floor 函數(shù)向無窮小方向舍入)。 rem(x,y)命令返回的是 x-n.y,如果 y 不等于 0,其中的 n = fix(x./y),而 mod(x,y) 返回的是 x-n.y,當(dāng) y 不等于 0 時,n=floor(x./y)

      臥槽~ 這是什么鬼 是不是覺得看不懂,下面濤哥用簡單的示例來進(jìn)行介紹,給你整得明明白白的。

      Java 示例

      我們就創(chuàng)建一個測試類,來進(jìn)行示例說明

      • 當(dāng) x 和 y 的正負(fù)號一樣的時候,兩個函數(shù)結(jié)果是等同的

        package org.taoguoguo.hyper;
        
        /**
         * @author taoguoguo
         * @description ModTest
         * @website http://www.rzrgm.cn/doondo
         * @create 2021-04-19 15:11
         */
        public class ModTest {
            public static void main(String[] args) {
                System.out.println("7對3取余: " + 7%3 );
                System.out.println("7對3取模: " + Math.floorMod(7,3));
        
                System.out.println("-7對-3取余: " + (-7) % (-3) );
                System.out.println("7對3取模: " + Math.floorMod(-7,-3));
            }
        }
        
        

        輸出結(jié)果:

        7對3取余: 1
        7對3取模: 1
        -7對-3取余: -1
        7對3取模: -1
        
      • 當(dāng) x 和 y 的符號不同時,rem 函數(shù)結(jié)果的符號和 x 的一樣,而 mod 和 y 一樣

        package org.taoguoguo.hyper;
        
        /**
         * @author taoguoguo
         * @description ModTest
         * @website http://www.rzrgm.cn/doondo
         * @create 2021-04-19 15:11
         * 取余運(yùn)算結(jié)果的符號和 被除數(shù) 一致,取模運(yùn)算結(jié)果的符號和 除數(shù) 一致
         * 取余,遵循盡可能讓商向0靠近的原則
         * 取模,遵循盡可能讓商向負(fù)無窮靠近的原則
         */
        public class ModTest {
            public static void main(String[] args) {
                System.out.println("7對-3取余: " + 7%(-3));
                System.out.println("7對-3取模: " + Math.floorMod(7,-3));
        
                System.out.println("-7對3取余: " + -7%3);
                System.out.println("-7對3取模: " + Math.floorMod(-7,3));
            }
        }
        
        

        輸出結(jié)果:

        7對-3取余: 1
        7對-3取模: -2
        -7對3取余: -1
        -7對3取模: 2
        

      解析

      1.符號相同時:	 7/3 = 2.3,產(chǎn)生了兩個商2和3
      		 7=3*2+1	 或者 7=3*3+(-2)
             結(jié)論:     7rem3=1 , 7mod3=1
      	   
      2.符號不同時:	7/(-3)= -2.-3 產(chǎn)生了兩個商-2和-3
      		7=(-3)*(-2)+1  或者 7=(-3)*(-3)+(-2)
             結(jié)論:	7rem(-3)=1 , 7mod(-3)=(-2)
      

      為什么遵循的是這樣的原則?

      在matlab中,關(guān)于取余和取模是這么定義的:

      • 當(dāng)y≠0時:

        • 取余:rem(x,y)=x-y.*fix(x./y)
        • 取模:mod(x,y)=x-y.*floor(x./y)

        其中,fix()函數(shù)是向0取整,floor()函數(shù)是向負(fù)無窮取整

        以前邊的運(yùn)算為例:

        7/(-3)=-2.3,在這個運(yùn)算中,x為7,y為-3,分別調(diào)用fix()和floor()兩個函數(shù),得到結(jié)果是:

        fix(-2.3)=-2

        floor(-2.3)=-3

        所以,rem(7,-3)=1,mod(7,-3)=-2

      總結(jié)

      1. 取余,遵循盡可能讓商向0靠近的原則,取模,遵循盡可能讓商向負(fù)無窮靠近的原則
      2. 符號相同時,兩者不會沖突;符號不同時,兩者會產(chǎn)生沖突。
      3. 取余運(yùn)算結(jié)果的符號和 被除數(shù) 一致,取模運(yùn)算結(jié)果的符號和 除數(shù) 一致
      posted @ 2021-04-19 18:49  DOONDO  閱讀(9877)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 久久免费精品国自产拍网站| 国产稚嫩高中生呻吟激情在线视频| 久久精品国产99亚洲精品| 白丝乳交内射一二三区| 亚洲精品动漫免费二区| 色偷偷女人的天堂亚洲网| 国产亚洲欧美日韩在线一区二区三| 一区二区亚洲精品国产精 | 日本久久香蕉一本一道| 在线亚洲午夜理论av大片| 欧美一区二区三区激情| 果冻传媒mv免费播放在线观看| 国产成人精品三上悠亚久久| 国产高清自产拍av在线| 亚洲天堂av日韩精品| 亚洲久久色成人一二三区| 福利视频一区二区在线| 国产日韩综合av在线| 成全世界免费高清观看| 久久精品熟妇丰满人妻久久| 国产美女高潮流白浆视频| A毛片终身免费观看网站| 亚洲天天堂天堂激情性色| 欧美激情内射喷水高潮| 国产精品护士| 粗壮挺进人妻水蜜桃成熟| 里番全彩爆乳女教师| 亚洲国模精品一区二区| 秋霞电影院午夜无码免费视频| 国产精品久久久久久久久久妞妞 | 亚洲AV成人无码精品电影在线| 日韩一区精品视频一区二区| 99riav精品免费视频观看| 国产精品视频中文字幕| 亚洲熟女精品一区二区| 91色老久久精品偷偷性色| 国产女主播喷水视频在线观看| 亚洲午夜激情久久加勒比| 五月丁香啪啪| 亚洲欧洲日韩精品在线| 成年午夜无码av片在线观看|