中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

真的了解js生成隨機數嗎

js生成一切隨機數的基礎都是Math.random(),這個方法比較特別,生成的隨機數落在的區間是[0,1),進行一次操作的話,js只能生成一個類似于[n,m)這樣,左閉右開的區間。所以當有一些特殊需求的時候,就勢必要進行一些其它的操作,下面對各種需求進行簡單的分析:

成都創新互聯公司提供高防主機、云服務器、香港服務器、綿陽電信機房


生成任意區間的整數

  1. 全閉區間[n,m]

    這種的最常見,大家都知道的那一長串公式:Math.floor(Math.random()*(m-n+1))+n; 就是生成這個全閉區間的方法。說到這個公式很多人都知道,但真正想明白的人估計很少。先生成一個[0,m-n+1)這樣左閉右開的區間,然后用Math.floor()取到[0,m-n]之間內的任意整數(看明白這一步很關鍵),之后加上區間左端點變成[n,m]內的任意整數,達到目的。

    說到這個地方,有一點必須提一下,隨便搜一下js生成隨機數,有很多文章都會用Math.ceil()Math.round()這兩個方法,比如生成全閉的[n,m]區間內的任意整數,Math.ceil(Math.random()*(m-n))+n;或者Math.round(Math.random()*(m-n))+n;我感覺隨機數,最重要的就是隨機兩個字,每個值取到的概率一定要相等,這一點對于一些特定的場合非常重要,比如抽獎(年會都有抽獎的吧)。Math.ceil()的毛病是n<<m≈x,x為除端點之外的數,區間足夠大的話n幾乎取不到,m和x的概率幾乎相等,因為m這個點取不到所以概率相對來說小了一點。Math.round()的毛病是n=m=x/2,原因和前面的差不多,不明白的可以自己畫個坐標軸,很明了。

  2. 全開區間(x,y)

    其實只要記住上面的全閉區間,其它所有區間的開閉,都可以由其推到,過程如下:
    (x,y) ==[x+1,y-1];也就是說n=x+1; m=y-1;將其代入上面的公式就可以得到:Math.floor(Math.random()*(y-x-1))+x+1;

  3. 左閉右開[x,y)

    同理,[x,y) == [x,y-1];代入得到:Math.floor(Math.random()*(y-x))+x;

  4. 左開右閉(x,y]

    (x,y]==[x+1,y];代入得到:Math.floor(Math.random()*(y-x))+x+1;


生成任意區間內的浮點數

這種實際當中用到的比較少,但也挺有意思的。

  • [n,m)

    這種最簡單,因為和random的特點保持一致。Math.rondom()*(m-n)+n;

  • 因為random的這種特點,想要取到其它區間內的浮點數就比較困難了。需要借助一些判斷才能才能滿足要求。思想和上面去整數的一樣。代碼如下:

        function fullClose(n,m) {  //[n,m]
            var result = Math.random()*(m+1-n)+n;
            while(result>m) {
                result = Math.random()*(m+1-n)+n;
            }
            return result;
        }
        function fullOpen(n,m) { // (n,m)
            var result = Math.random()*(m-n)+n;
            while(result == n) {
                result = Math.random()*(m-n)+n;
            }
            return result;
        }
        function leftOpen(n,m) { // (n,m]
            var result = Math.random()*(m-n+1)+n-1;
            while(result<n) {
                result = Math.random()*(m-n+1)+n-1;
            }
            return result;
        }

網站欄目:真的了解js生成隨機數嗎
鏈接URL:http://m.2m8n56k.cn/article34/ggdjse.html

成都網站建設公司_創新互聯,為您提供網站內鏈網站維護網站導航云服務器網站策劃軟件開發

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

商城網站建設
主站蜘蛛池模板: 国产成人99久久亚洲综合精品 | 欧美在线成人免费国产 | 九九综合九九 | 国产在线欧美精品 | 国产成人夜间影院在线观看 | 91成人午夜性a一级毛片 | 特黄特级a级黄毛片免费观看多人 | a级精品九九九大片免费看 a级毛片免费观看网站 | 在线观看国产 | 国产成人久久一区二区三区 | 一级欧美毛片成人 | 国产a级午夜毛片 | 在线观看国产一区二三区 | 免费久草视频 | 黄色网址www | 国产女主播91 | 国产亚洲一区二区三区在线观看 | 国产一级毛片网站 | 国产精品久久久久久久久久久搜索 | 女人张开腿让男人桶视频免费大全 | 国产网站黄色 | 日韩亚洲一区二区三区 | 亚洲精品第五页 | 亚洲人成网国产最新在线 | 91久久香蕉国产线看观看软件 | 欧美成人久久 | 一级视频在线免费观看 | 久久久午夜精品理论片 | 国产成人啪精品视频免费软件 | 欧美色网在线 | 国产三级手机在线 | 精品一区国产 | 国产一国产一级毛片视频在线 | 欧做爰xxxⅹ性欧美大 | 亚洲国产欧美一区二区欧美 | 久久网免费视频 | 久草在线资源网站 | 亚洲国产成人私人影院 | 亚洲三级毛片 | 视频一区精品 | 黄色毛片三级 |