你的位置:首页 > Java教程

[Java教程]5.7.2.4 random() 方法


  Math.random()方法返回大于等于0小于1的一个随机数。对于某些站点来说,这个方法非常实用,因为可以利用它来随机显示一些名人名言和新闻事件。套用下面的公式,就可以利用Math.random()从某个整数范围内随机选择一个值。

值 = Math.random.floor(Math.random()*可能值得总数+第一可能的值)

  公式中用到了Math.floor()方法,这是因为Math.random()总返回一个小数值。而用这个小数值乘以一个整数,然后再加上一个整数,最总结果仍然还是一个小数。例如:

var num = Math.floor(Math.random()*10+1);

  总共有10个可能的值,而第一个可能是1。而如果想要选择一个介于2到10之间的值,就应该将代码改成如下这样:

var num = Math.floor(Math.random()*9+2);

  从2数到10要数9个数,因此可能值得总数是9,而第一个可能的值是2。多数情况下,其实都可以通过一个函数来计算可能值得总数和第一个可能的值,例如:

function selecFrom(lowerValue,upperValue){  var choices = upperValue - lowerValue + 1;  return Math.floor(Math.random() * choices + lowerValue);}var num = selectForm(2,10);alert(num); //介于2和10之间(包括2和10)的一个数值

  函数selectFrom()接受两个参数,应该返回的最小值和最大值。而用最大值减最小值再加1得到了可能值得总数,然后它又把这些数值套用到了前面的公式中。这样,通过调用selectFrom(2,10)就可以得到一个介于2和10之间(包含2和10)的数值了。利用这个函数,可以方便的从数组中随机取出一项,例如:

var colors = ["red","blue","orange","teal"];var color = colors[selectFrom(0,colors.length-1)];alert(color); //可能是数组中的任意一个字符串

  在这个例子中,传递给selectFrom()的第二个参数是数组的长度减1,也就是数组中最后一项的位置。

  其他方法

  Math对象中还包含其他一些与完成各种简单活复杂计算有关的方法。见下表:

方  法说  明方  法说  明
Math.abs(num)返回num的绝对值Math.asin(x)返回x的反正弦值
Math.exp(num)返回Math.E的num次幂Math.atan(x)返回x的反正切值
Math.log(num)返回num的自然数Math.atan2(y,x)返回y/x反正切值
Math.pow(num,power)返回num的power次幂Math.cos(x)返回x的余弦值
Math.sqrt(num)返回num的平方根Math.sin(x)返回x的正弦值
Math.acos(x)返回x的反余弦值Math.tan(x)返回x的正切值