学习笔记一: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 内的文章,有错误请指出,谢谢!
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号