首页 > 代码库 > JS进位取舍和产生随机数结合

JS进位取舍和产生随机数结合

一、进位取整

      最开始,先来看一下JS中进位取舍的几个小示例:

//JS进位取舍
	//向上取整
		alert(Math.ceil(25.9));				//打印:26
		alert(Math.ceil(25.5));				//打印:26
		alert(Math.ceil(25.1));				//打印:26
	//向下取整
		alert(Math.floor(25.9));			//打印:25
		alert(Math.floor(25.5));			//打印:25
		alert(Math.floor(25.1));			//打印:25
	//标准取整(四舍五入)
		alert(Math.round(25.9));			//打印:26
		alert(Math.round(25.5));			//打印:26
		alert(Math.round(25.1));			//打印:25
//-----------------------------------------------------------------------------------
从上面的示例很容易看出不同取舍函数的效果:

       向上取整,如果小数部分大于0,则经过“向上取整”后,将在取得除去小数的整数部分+1的数(如(25.1,取26)。
      向下取整,无论小数部分为多少,都直接舍去,只取除去小数剩余的整数部分(如25.9,取25)。

      标准取整,四舍五入,小数部分小于0.5的舍去小数,只取整数(如25.2,则取25);小数部分大于等于0.5的,取截去小数后的整数部分+1的整数(如25.7,则取26)。

二、产生随机数

<pre name="code" class="html">//产生随机数
	//(0,1):产生0到1之间,不包括0和1的随机数1个。		(显示方式:alert()为弹窗显示)
		alert(Math.random());
	//-----------------------------------------------------------------------
	//10个随机数:0到1之间,不包括0和1。			(显示方式:document.write()为页面显示)
		for(var i=0;i<=10;i++){
			document.write(Math.random());
			document.write('<br/>');
		}
	//-----------------------------------------------------------------------

三、进位取整与产生随机数结合及运用

	//[1,10]的随机数10个
		for(var i=0;i<=10;i++){
			document.write(Math.floor(Math.random()*10 + 1));
			document.write('<br/>');
		}
	//-----------------------------------------------------------------------
		//[0,10]的随机数10个					
		for(var i=0;i<=10;i++){
			document.write(Math.round(Math.random()*10));
			document.write('<br/>');
		}
		//其中一个示例“10,6,9,10,3,0,3,2,5,4,2”
	-----------------------------------------------------------------------
	//[5,14]的随机数10个
		for(var i=0;i<=10;i++){
			document.write(Math.floor(Math.random()*10+ 5));
			document.write('<br/>'); 
		}		
	//-----------------------------------------------------------------------
		//[5,10]的随机数10个
		for(var i=0;i<=10;i++){
			document.write(Math.floor(Math.random()*(10-5+1)+ 5));
			document.write('<br/>');
		}		
	//-----------------------------------------------------------------------
			
	//打印[10~100]的随机数10个
		documentDataArray(10,100,10);      打印:其中一个示例“95,38,44,75,69,82,24,22,37,75”
		// ///sum
		// ///产生随机数组,产生[start,end]之间的num个随机数(包括数start和end)
		// ///sum
		function select(start,end,num) {
			//定义一个数组
			var item = new Array();
			//循环产生随机数
			for (var i=0;i<num;i++) {
				var total = end - start +1;
				var result = Math.floor(Math.random() * total + start);
				//将产生的随机数 放入数组中	
					item.push(result);
			}
			return item
		}

		function documentDataArray(start,end,num){
			var item = new Array();
			item = select(start,end,num);
			for (var j = 0;j<num;j++) {
				document.write(item[ j ]);
				document.write('<br/>');
			}
		}
	//-----------------------------------------------------------------------	
	
	//打印(10~100)的随机数10个
		documentDataArray(10,100,10);
		
		function documentDataArray(start,end,num){	//其中一个示例为“12,15,38,74,53,25,64,73,89,88”共10个
			var item = new Array();
			item = select(start,end,num);
			for (var j = 0;j<num;j++) {
				document.write(item[ j ]);
				document.write('<br/>');
			}
		} 
		
		// ///sum
		// ///产生随机数组,产生(start,end)之间的num个随机数(不包括数start和end。)
		// ///sum
		function select(start,end,num){
			//定义一个数组
			var item = new Array();
			//循环产生随机数
			for (var i=0;i<num;i++) {
				var total = end - start +1;
				var result = Math.floor(Math.random() * total + start);
				//将产生为start和end的随机数移除【是否包括start或end,只需在此简单更改即可】
				if (result==start || result==end) {					
					//重新产生一个随机数
					--i;	
				} else {
					//将产生的随机数 放入数组中				
					item.push(result);
				}
			}	
			return item
		}	
//-----------------------------------------------------------------------------------
      上面的的随机数可以用于简单的验证码;当然,有更加简便且丰富的验证码产生方式,用正则表达式产生0~9,、a~z、A~Z的随机字符。



JS进位取舍和产生随机数结合