JavaScript 乱数設定関数 [JavaScript]
例えば、JavaScriptを使って3枚の画像をランダムに表示したい場合、こんな感じで書くでしょう。
var rndImg = new Array();
rndImg[0] = "../images/rnd0.jpg";
rndImg[1] = "../images/rnd1.jpg";
rndImg[2] = "../images/rnd2.jpg";
var rndNum = Math.floor(Math.random()*rndImg.length);
document.write('<img src="' + rndImg[rndNum] + '" width="100" height="100"');
では、3枚の画像の出現確率を操作したい場合は?
こんな関数を使って乱数をセットしたらどうかな。
function setRndNum(rndAr){
var rndLength = rndAr.length;
var rndTotal = 0;
for (var i = 0; i < rndLength; i++) rndTotal += rndAr[i];
var rndDef = Math.floor(Math.random() * rndTotal) + 1;
var rndSubtotal = 0;
for (var j = 0; j < rndLength; j++){
rndSubtotal += rndAr[j];
if (rndDef <= rndSubtotal){
return j;
break;
}
}
}
var rndImg = new Array();
rndImg[0] = "../images/rnd0.jpg";
rndImg[1] = "../images/rnd1.jpg";
rndImg[2] = "../images/rnd2.jpg";
var rndProb = new Array(5, 3, 2); //ここで出現確率を設定
var rndNum = setRndNum(rndProb);
document.write('<img src="' + rndImg[rndNum] + '" width="100" height="100"');






