cruz是脾气暴躁的老妖婆
2021-08-24 21:42
采纳率: 90%
浏览 23
已结题

求解这道关键代码,用于生成1-16的随机数


int random=(int)(Math.random()*16)+1;//Generate a random number from 1 to 16

可以解释一下吗,为什么后面要+1?

  • 好问题 提建议
  • 收藏

2条回答 默认 最新

  • 咕泡-川南 2021-08-24 21:53
    已采纳

    Math.random() 这个方法的取值范围是 [0,1)的小数, 包括0 ,不包括1 ,
    所以* 16 范围就是 [0,16) 做+1 处理之后就变成了 [1,17)之间的小数,再取整就是1-16 了
    理解明白了忘采纳

    欢迎加好友讨论学习

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Pliosauroidea 2021-08-24 21:44

    因为random是0-1,*16之后是0-16,不包括16,所以要+1
    这样再转化为int的时候范围就是1-16的整数了
    有帮助望采纳

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题