• 用Math获取随机数的方法抽奖


      学习是一个有趣的过程,这不还可以做一个有趣的东西奖励或是惩罚一下自己,今天来写一下普通抽奖和小概率抽奖,平时起不了床的时候就来抽下奖来惩罚自己一下,纠结的时候来抽一下奖来替你做决定。

      先来看看普通的抽奖,。

      这是一个简单的例子,但是确实很有意思,很久没有出去玩了,。可以让电脑替你决定一下去什么地方玩,。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
        <style>
                p{
                    height: 50px;
                    line-height: 50px;
                }
        </style>
    </head>
    <body>
    <div>去拉萨  去成都  去丽江  去赤壁</div>
    <p></p>
    <script src="js/jquery-3.0.0.js"></script>
    <button>抽奖</button>
    <script>
        var arr = ["去拉萨","去成都","去丽江","去赤壁"];
        $("button").click(function(){
            var num = Math.floor(Math.random()*arr.length);
            if(arr.length>0){
                $("p").text(arr[num]);
                arr.splice(num,1);
            }else{
                $("p").text("待在家写代码");
            }
        })
    </script>    
    </body>
    </html>

      这里为了方便,插入了3.0.0的jquery,首先在开头我们申明了一个变量,给变量符的值是一个数组,,接着来用$符号获取一下按钮。当点击一下按钮的时候来执行一下函数。这个时候需要获得一下随机数,用Math.random(),记住M一定得是大写,这个房法的到的是一个0到1的随机数,都是小说,为了得到一个整数,来乘一下数组里面的字符的个数,这样每个奖项就都可以获取到一次,所以就执行下一步Math.random()*arr.length,但是这样获得的数依旧不是整数,那这就尴尬了,好吧,再加上Math.floor,将获得的小数变为整数,这个是舍得意思,什么是下舍,举一个简单的例子就好理解了,那就是就算获得的数是3.999,用Math.floor方法也会将它转化为3,。最后是这样的var num = Math.floor(Math.random()*arr.length);将这个随机抽到的整数储存在一个变量num里面,将num作为数组的下标,那这样,就得到了想要的结果了,。

      那现在再来做一下美化,就需要判断了,这里用到了.splice(),还不知道这个方法怎么用的可以去百度一下了,最后我还是解释一下这个判断里面的意思,如果数组的长度大于0,那么久获取到P元素,并给p元素天机内容,内容的下标就是num,就是我们随机抽取的一个数字,每点击一次这个数字都会变,因此我们获得的下标内容也会变,。每获得一次奖项,都将此奖项给切掉,arr.splice(num,1);这个就是切掉的方法,。意思是从索引值为num的地方切,切掉一个,也就是切点它本身,那这个切到最后数组的长度就是0了,当是0的时候,那就一直待在家写代码了,。

      再来说一声小概率的思路,抽奖的概率总是小的,想要小概率,那怎么办,就让随机数多获取一点,什么意思呢,来看看Math.random()*100,这儿指的是获得的随机数是0-100的整数。这儿用的是var num =Math.ceil(Math.random()*100);Math.ceil()方法,意思是上进的意思,。那我们获得的随机数就是1到100的整数,随机数多了,在给每个奖项设一个随机数的区间,那这样概率是不是就小了,。

      直接来看一下js代码,。

      

    <script>
            var first =1,second=2,third=10;
            var arr = ["去拉萨","去成都","去丽江","哪儿都不去"];
            $("button").click(function(){
                var num =Math.ceil(Math.random()*100);
                if(num==1){
                $("p").text(arr[0]);
                first--;
                if(first==0){
                    arr[0]="哪儿都不去";
                }
            }else if(num>1&&num<=3){
                $("p").text(arr[1]);
                second--;
                if(second==0){
                    arr[1]="哪儿都不去";
                }
            }else if(num>3&&num<=13){
                $("p").text(arr[2])
                third--;
                if(third==0){
                    arr[2]="哪儿都不去";
                }
            }else{
                $("p").text(arr[3])
            }
            })
        </script>

      首先在开头设置了三个变量,var first =1,second=2,third=10;在看看if else判断里面,每都到一次,都让这个奖项获得的次数自减1,当减到这个奖项只有0个的时候,那么抽到的结果就是那儿都不去了,。这样写最后每一次我们抽奖的概率还是没有变,因为if或者if else里面的判断的区间始终是没有变得,。所以抽奖的概率一直没有变化。

      这样就是简单的有意思的抽奖,希望能给大家带来快乐。

      美丽的茶卡盐湖,好想再去一次。

  • 相关阅读:
    buuctf re [BJDCTF2020]BJD hamburger competition
    IOT家用路由器漏洞挖掘入门
    HWS计划2020夏令营学习笔记1逆向实战
    HWS计划2020夏令营学习笔记2逆向实战 密码学
    HWS计划2020夏令营学习笔记3 PWN堆利用之对抗glibc安全机制
    BUUCTF 刷题记录 PWN
    基于Firmadyne的固件模拟环境搭建
    【转】C#中的非安全编程(key:unsafe,fixed)
    .net导出为powerpoint的一些参考代码
    c# 获取串口设备的输入(unsigned char *和 char*)
  • 原文地址:https://www.cnblogs.com/hopeelephant/p/6160056.html
Copyright © 2020-2023  润新知