关于4-7

关于4-7

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Math.random()</title>
</head>
<body>
<script>
    var one=prompt("请输入1到9数字"),
        two=Math.ceil(Math.random()*8+1);
     while(one!=two){
    if(one==null){
     alert("退出游戏");
     break;
    }

    else if(one>two){
        alert("输入的数字大了"+"应该是"+two)
        one=prompt("请输入1到9数字")
        two=Math.ceil(Math.random()*8+1)
    }
    else if(one<two){
        alert("输入的数字小了"+"应该是"+two);
         one=prompt("请输入1到9数字");
         two=Math.ceil(Math.random()*8+1)
    }
   
      
    }
    if(one==two){
        alert("恭喜你猜对了");
    }
</script>
</body>
</html>
请问老师我的代码我测试了很多次,为什么不能出现随机数1?


正在回答

登陆购买课程后可参与讨论,去登陆

4回答

Math.random()能取到0,但是取到0的几率很小,你可以一直刷新试下,看取到0的几率是多少

一路电光带火花 2018-01-23 15:23:48

你测试我给你的代码了么?你不管怎么刷它结果都是1,我看你js基础没学好

Math.random()返回的是0.0 ~ 1.0 之间的一个随机数。不可能是0

你要是想让它取零,就用Math.floor(Math.random())

  • 提问者 hy_wang #1
    Math.random()不是返回大于等于0小于1的随机数嘛,为什么取不到0.。
    2018-01-23 18:16:15
  • 提问者 hy_wang #2
    Math.random()如果返回0的时候Math.random()*8也会返回0,之后加1,Math.random()*8+1等于1.Math.ceil(Math.random()*8+1),为什么不会等于1啊
    2018-01-23 18:21:42
一路电光带火花 2018-01-23 09:22:19

你打印一下这个

two=Math.ceil(Math.random());

     console.log(two)

你就知道为什么了

  • 提问者 hy_wang #1
    这个是随机啊,万一random随机到0,这不就是等于0吗
    2018-01-23 14:38:19
小丸子爱吃菜 2018-01-22 10:28:19

改成这样的就可以取到了 var two=Math.ceil(Math.random()*8);

ceil() 方法可对一个数进行上舍入。

祝学习愉快!

  • 提问者 hy_wang #1
    请问老师教辅上是这么写的,向上取整的公式。为什么错了
    2018-01-22 22:06:10
  • 提问者 hy_wang #2
    关于随机取整,教辅上写道Math.ceil(Math.random*(m-n))+n.我套用这个公式,请问老师为什么是8
    2018-01-22 22:16:02
  • 提问者 hy_wang #3
    请问老师为什么不对啊,当math.random=0,0×8=0,0+1=1,在向上取整是不是刚好等于1。为什么不会输出1
    2018-01-22 22:28:44
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
前端小白入门系列课程
  • 参与学习           人
  • 提交作业       11218    份
  • 解答问题       36713    个

从一个不会编程的小白到一个老司机是需要过程的,首先得入门,学习基础知识,然后才能进阶,最后再到精通,本专题是你走进前端世界的不二选择!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师