2013-10-17 128 views
1

我試圖使6 with 5次的組合。像從1到6我想隨機產生7 to 1213 to 18 upto 25 to 30。 我想這就像使用javascript隨機生成數字

setInterval(function() { 
    var number = 1 + Math.floor(Math.random() * 6); //i tried from 1 to 6 
    $('#my_div1').text(number); 
    var number = 7 + Math.floor(Math.random() * 12); // i tried from 7 to 12 
    $('#my_div2').text(number); 
    var number = 13 + Math.floor(Math.random() * 18); // from 13 to 18 
    $('#my_div3').text(number); 
    var number = 19 + Math.floor(Math.random() * 24); //from 19 to 24 
    $('#my_div4').text(number); 
    var number = 25 + Math.floor(Math.random() * 30); // from 25 to 30 
    $('#my_div5').text(number); 
    }, 
1000); 

對於第一個本身正在爲下一次我沒有得到應有的價值。我以前在php中用rand(1,5);這樣做過,但我不確定如何在JavaScript中做到這一點。任何建議都會很棒。

這裏是Fiddle

回答

2

你幾乎說得沒錯。問題是你還是由整個金額乘以隨機生成的數字,讓您進行7 + a random number between 1 and 12(=最大值19),而你需要7 + a random number between 1 and 6所以對數計算正確的代碼是:

var number = 7 + Math.floor(Math.random() * 6); 
var number = 13 + Math.floor(Math.random() * 6); 
var number = 19 + Math.floor(Math.random() * 6); 
var number = 25 + Math.floor(Math.random() * 6); 

編輯:如果不知道你需要1到6或1到5之間的數字,對此抱歉。產生分鐘最大之間的僞隨機數

1

看起來像你的數學是錯誤的。改變它如下:

setInterval(function() { 
    var number = 1 + Math.floor(Math.random() * 6); //i tried from 1 to 6 
    $('#my_div1').text(number); 
    var number = 7 + Math.floor(Math.random() * 6); // i tried from 7 to 12 
    $('#my_div2').text(number); 
    var number = 13 + Math.floor(Math.random() * 6); // from 13 to 18 
    $('#my_div3').text(number); 
    var number = 19 + Math.floor(Math.random() * 6); //from 19 to 24 
    $('#my_div4').text(number); 
    var number = 25 + Math.floor(Math.random() * 6); // from 25 to 30 
    $('#my_div5').text(number); 
    }, 
1000); 
1

方式一:

function rand(min, max) { 
    return Math.floor(min + (Math.random() * max)); 
} 
2

我猜你需要這樣的:

setInterval(function() { 
    var number = 1 + Math.floor(Math.random() * 6); //i tried from 1 to 6 
    $('#my_div1').text(number); 
    var number = 7 + Math.floor(Math.random() * 6); // i tried from 7 to 12 
    $('#my_div2').text(number); 
    var number = 13 + Math.floor(Math.random() * 6); // from 13 to 18 
    $('#my_div3').text(number); 
    var number = 19 + Math.floor(Math.random() * 6); //from 19 to 24 
    $('#my_div4').text(number); 
    var number = 25 + Math.floor(Math.random() * 6); // from 25 to 30 
    $('#my_div5').text(number); 
    }, 
1000); 

更新小提琴http://jsfiddle.net/bxZ9G/8/

1

您可以使用以下功能:

// Returns a random number between min and max 
function getRandomArbitrary(min, max) { 
    return Math.random() * (max - min) + min; 
} 

該函數取自Math.random上的Mozilla's page。 使用Math.floor使其成爲一個整數。

1

在指定範圍內的隨機數摘要方程應

最小值+(int)的(的Math.random()*((最大值 - 最小值)+ 1))

所以在你的情況下,你的代碼可能看起來像

function getRandomRange(min, max) { 
    return min + Math.floor(Math.random() * ((max - min) + 1)); 
} 
setInterval(function() { 
    var number = getRandomRange(1, 6); //i tried from 1 to 6 
    $('#my_div1').text(number); 
    var number = getRandomRange(7, 12); // i tried from 7 to 12 
    $('#my_div2').text(number); 
    var number = getRandomRange(13, 18); // from 13 to 18 
    $('#my_div3').text(number); 
    var number = getRandomRange(19, 24); //from 19 to 24 
    $('#my_div4').text(number); 
    var number = getRandomRange(25, 30); // from 25 to 30 
    $('#my_div5').text(number); 
}, 1000); 

這裏的固定小提琴:http://jsfiddle.net/bxZ9G/6/

1
setInterval(function() { 
    var number = 1 + Math.floor(Math.random() * 6); //i tried from 1 to 6 
    $('#my_div1').text(number); 
    var number = 7 + Math.floor(Math.random() * 6); // i tried from 7 to 12 
    $('#my_div2').text(number); 
    var number = 13 + Math.floor(Math.random() * 6); // from 13 to 18 
    $('#my_div3').text(number); 
    var number = 19 + Math.floor(Math.random() * 6); //from 19 to 24 
    $('#my_div4').text(number); 
    var number = 25 + Math.floor(Math.random() * 6); // from 25 to 30 
    $('#my_div5').text(number); 
}, 
1000); 

您只需要一個介於0到5之間的隨機數字。您可以將其添加到7,13,19,25以獲得所需範圍內的隨機數。