学习笔记一:Javascript生成随机数

获取单个随机数

var Max=100 ;//想要生成随机数所在范围上限,此上限不可取
loRnd=Math.floor(Math.random()*Max); //生成从0到Max-1范围内的随机数 
hiRnd=Math.ceil(Math.random*Max);    //生成从1到Max范围内的随机数

  此处要获得0到100间的随机数,Max应该是101,有点容易混淆,换种写法是,要获得0到n之间的随机数

loRnd=Math.floor(Math.random()*(n+1));  //获得0到n之间的随机数,n可取

 那么要获得1到n之间的随机数,可写:

hiRnd=Math.ceil(Math.random*n);  //获取从1到n之间的随机数

  或者:

hiRnd=Math.floor(Math.random*Max)+1;

生成一组不重复(unique)的随机数

var picked=[]; //创建空数组,存放生成的多个随机数
function getUnique(NumUnique,MaxValue)
  {//声明生成不重复随机数的函数,接收两个参数
    var found=false;//找到重复数字时,found变为true
    var count=0;//已找到随机数的个数
    for (count=0;count<NumUnique;count++)
    {
      found=false;
      rndValue=Math.floor(Math.random()*MaxValue);//生成0到MaxValue-1的随机数
      for (var j=0;j<picked.length;j++)
          {
          if (pic[j]==rndValue){//检查所生成的随机数是否和已有随机数重复
              found=true;
              break;
              }
          }
      if (found){
          count--;//若重复,则不能算入数组
          }else{
              picked[count]=rndValue; //未重复,列入"仙班"
              }
    } }

找到值最近似的数

有的时候我们需要将几个数进行比较,找出与标准值最相近的值

function near(t,x,y){ //声明找出近似值的函数,接收参数x,y和标准值t
if (Math.abs(t-x)<Math.abs(t-y)){//比较绝对值
    return x;
    }
return y;
}

 

说明:代码参考了http://home.cogeco.ca/~ve3ll/jsproj2.htm 内的文章,有错误请指出,谢谢!

posted @ 2012-10-13 11:00  FreeLesley  阅读(257)  评论(0)    收藏  举报