乱数生成ライブラリ

基本的にはMath.random()を強化したものばっかりです。
使い方?ソースコードに。

基本的にはMath.random()を強化したものばっかりです。
使い方?ソースコードに。

  • タグ:
  • タグはありません
/*
Random Class Library JS
(Twittergaogao_9)
2012/03/15
1.00
使
使使
RandomClass()var RandObj = new RandomClass(arg);使
()new RandomClass();
min0max1
1()new RandomClass(max);
0≦num≦max-1()
2()new RandomClass(max,min);
min≦num≦max()
()new RandomClass(a,b,c,d,e);
maxmin
RandomClass->setMax()RandObj.setMax(5);
RandomClass->setMin()RandObj.setMin(2);
RandomClass->getNumber()RandObj.getNumber(); //2≦num≦51
()RandObj.getNumber();
min≦num≦max
1()RandObj.getNumber(times);
min≦num≦maxtimes
2()RandObj.getNumber(times,isRepeated);
min≦num≦maxtimes
1
()RandObj.getNumber(a,b,c,d,e);
timesisRepeated
Array.randomChoice()
(var Arr = ["t","e","x","t"])
()var Output = Arr.getNumber();
Output()
1()var Output = Arr.getNumber(length);
lengthOutput()
2()var Output = Arr.getNumber(length,isBreak);
length
1
()var Output = Arr.getNumber(a,b,c,d,e);
lengthisBreak
*/
Array.prototype.randomChoice = function(input,flag){
var length = input || this.length;
var output = [];
var baseArray = (flag) ? this : this.concat(); //()() ()()
var index;
for(var i=0;i<length;++i){
index = Math.floor(Math.random()*baseArray.length);
output.push(baseArray[index]); //indexoutput
baseArray.splice(index,1); //index
}
return output;
};
var RandomClass = function(){ //JS
/*()*/
var throwError = function(){
var isIE = !-[1,];//IE8true,false
var err;
if(isIE){ //IE
switch(arguments.length){
case 1:
err = new Error("RandomClass : " + arguments[0]);
break;
case 2:
err = new Error("RandomClass->" + arguments[0] + " : " + arguments[1]);
break;
default:
err = new Error("RandomClass->throwError : ");
break;
}
}
else{ //
err = new Error();
switch(arguments.length){
case 1:
err.name = "RandomClass";
err.message = arguments[0];
break;
case 2:
err.name = "RandomClass->" + arguments[0];
err.message = arguments[1];
break;
default:
err.name = "RandomClass->throwError";
err.message = "";
break;
}
}
throw err;
};
/**/
/**/
var min,max,RandomNumber;
var init = function(){
this.setMax(arguments[0]);
this.setMin(arguments[1]);
};
this.setMax = function(num){
max = (!isNaN(num-0)) ? Math.round(num) : 1;
};
this.setMin = function(num){
min = (!isNaN(num-0)) ? Math.round(num) : 0;
};
this.getNumber = function(times,isRepeated){
if(min>max){
var temp = min;
min = max;
max = temp;
}
var range = (max-min)+1;
times = (!isNaN(times-0)) ? Math.round(times) : 1;
if(times>1){ //2
RandomNumber = [];
if(isRepeated){
if(times>range){
throwError("getNumber","")
}
else{
var baseArray = [];
if(min){
for(var i=min;i<=max;++i){
baseArray.push(i);
}
}
else{
for(var i=min;i<max;++i){
baseArray.push(i);
}
}
RandomNumber = baseArray.randomChoice(times,true);
}
}
else{
for(var i=0;i<times;++i){
if(min){
RandomNumber.push(Math.floor(Math.random()*range)+min);
}
else{
RandomNumber.push(Math.floor(Math.random()*(range-1))+min);
}
}
}
}
else{
if(min){
RandomNumber = Math.floor(Math.random()*range)+min;
}
else{
RandomNumber = Math.floor(Math.random()*(range-1))+min;
}
}
return RandomNumber;
};
this.toString = function(num){
if(RandomNumber){ //
if(num==null){
return RandomNumber.toString();
}
if(!isNaN(num-0)){
return RandomNumber.toString(num-0);
}
else{
return "Random Class";
}
}
else{
return "Random Class";
}
};
init.apply(this,arguments);//initthis(initRandom Class)
};
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX