用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里面的判断的区间始终是没有变得,。所以抽奖的概率一直没有变化。

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

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

原文地址:https://www.cnblogs.com/hopeelephant/p/6160056.html