// JavaScript Document
function DataClass(){
    this.RndNumber=function(mins,maxs){  //得到一个随机数字 RndNumber(1,5) 得到一个在1，5之间随机数 
		var tmp=Math.round(mins+Math.random()*(maxs-mins));
		if(maxs.toString().length>1){
			if(tmp.toString().length<2)tmp="0"+tmp.toString();
		}
		return tmp;
	};
					/*
					得到一个串型数字
					RndNumbers(1,5,3,1,-1)  得到从1-5 之间3个数字组成串，可以重复。并且从小到大排序
					结果：1,2,3
					*/
    this.RndNumbers=function(mins,maxs,nums,isChongfu,isOrder,tmps) { // isOrder =-1 小到大，1大到小,0不排序
		if(typeof(mins)!="number" || typeof(maxs)!="number" ||typeof(nums)!="number"){
			alert('参数错误！');
			return;
		}
		isOrder=isOrder||0;
		isChongfu=isChongfu||0;
		if(!tmps) {
			tmps=""; 
		} else {
			tmps = ","+tmps;
		}
		var tnum="";
		for(var i=1;i<=nums;i++){
			tnum=this.RndNumber(mins,maxs);
			if(!isChongfu){
				while((tmps+",").indexOf(","+tnum+",")!=-1){
					tnum=this.RndNumber(mins,maxs)
				}
			}
			tmps=tmps+","+tnum;  
		}
		tmps=tmps.substr(1);
		tmps=this.GetSorts(tmps,isOrder);
		return tmps;
	}
					/*
					得到多注数字
					var f=function(){return t.RndNumbers(1,15,6,false,1)+"-"+t.RndNumber(1,16)}
					GetNumberLines(5,f)
					得到5行，前6为从1-15 可以重复。从大排列，后一位1，16之间 。中间用"-"链接
					*/
	this.GetNumberLines=function(lines,f){
		if(typeof(lines)!="number" || typeof(f)!="function") {
			alert('参数错误！GetNumberLines');
			return;
		}
		var alist=[];
        for(var i=1;i<=lines;i++) {
			alist[alist.length]=f();
		}
		return alist;
	}
					/*
					排序字符串
					GetSorts("05,03,06",-1) 从小到大 结果03,05,06
					*/
    this.ForMatNum=function(s,len){  //以下进行字符串批量前补充0函数
		var len=len||2;
		var s=s||"";
		var m=s.split(",");
		for(var i=0;i<=m.lenght;i++){
			var t="";
			if(m[i].length<=len)	{
				for(var j=0;j<len-m[i].length;j++) {
					t="0"+t.toString();
				}
			}
			m[i]=t.toString()+m[i].toString();
		}
		return m.join(",");
	}
	this.GetSorts=function(mins,isOrder){ // isOrder =-1 小到大，1大到小,0不排序
		var tmps=mins||1;
		if(Math.abs(isOrder)==1){
			tmps=isOrder==1?tmps.split(",").sort(function(x,y){return x>y?-1:1}).join(","):tmps.split(",").sort(function(x,y){return x>y?1:-1}).join(",");
		}
		return tmps;
	}
					
					/*阶乘*/
   this.GetJieChen=function(num1){
        var nums=num1||1;
		if(typeof(nums)!="number"){
			alert('参数错误！GetJieChen');
			return;
		}
		var r=1;
		for(var i=1;i<=nums;i++){
			r=r*i;
		}
		return Math.round(r);
	}
					/*
					排列
					*/
   this.GetPaiLie=function(min,max){  //计算排列
        var min1=min||1,max1=max||1;
		if(typeof(min1)!="number" || typeof(max1)!="number" || min1>max1){
			alert('参数错误！GetPaiLie');
			return;
		}
		return  Math.round(this.GetJieChen(max1)/this.GetJieChen(max1-min1))
	}

    this.GetZuHe=function(min,max){  //计算组合
          var min1=min||1,max1=max||1;
					   if(typeof(min1)!="number" || typeof(max1)!="number" || min1>max1){alert('参数错误！GetZuHe');return;}
					   return  Math.round(this.GetPaiLie(min1,max1)/this.GetJieChen(min1))
				   }
    this.HeZhi=function(min){  //计算和值  01,02,03,04,5,07
                        var min1=min||1;
					    return eval(min1.split(",").join("+"));
				   }
    this.JiOu=function(min){  //计算奇偶
                        var min1=min||1;
						var t=min1.split(",");
						var Ji=0,Ou=0;
					    for(var i=0;i<t.length;i++)
						{
						   t[i]%2==0?Ou++:Ji++;
						}
						return {"Ou":Ou,"Ji":Ji};
				   }

    this.DaXiao=function(min,num){  //计算大小
                        var min1=min||1;
						var t=min1.split(",");
						var Da=0,Xiao=0;
					    for(var i=0;i<t.length;i++)
						{
						   t[i]-num>0?Da++:Xiao++;
						}
						return {"Da":Da,"Xiao":Xiao};
				   }


    this.GetZhuHeList6=function(str,num){  //从一组数据中，取出num个数据项，得到所有组合情况
                       var str1=str;
					   var num1=num||1;
					   var nums=0;
					   var tlist=[];
					   var t=str1.split(",");
					   if(t.length<6){alert('参数错误！GetZhuHeList6');return;}
					   for(var i=0;i<t.length;i++)
					   {
						 for(var j=i+1;j<t.length;j++)
                         {
    						 for(var k=j+1;k<t.length;k++)
							 {
								 for(var l=k+1;l<t.length;l++)
								 {
									 for(var m=l+1;m<t.length;m++)
									 {
										 for(var n=m+1;n<t.length;n++)
										 {
											 if(nums>num1) return tlist;
											 tlist[tlist.length]=t[i]+","+t[j]+","+t[k]+","+t[l]+","+t[m]+","+t[n];
										 }
									 }
								 }
							 }
	
						 }  						 
						   
					   }

				   }


}