
30.07.2009, 16:57
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
С нами:
10191686
TEST DEPOSIT
Репутация:
210
|
|
Сообщение от Zitt
есть функция
function getRandom() { return Math.round(7*Math.random());}
как сделать чтоб возвращаемое число не повторялось?
PHP код:
var have_been = Array();
function in_array(needle, haystack, argStrict) {
var key = '', strict = !!argStrict;
if (strict) {
for (key in haystack) {
if (haystack[key] === needle) {
return true;
}
}
} else {
for (key in haystack) {
if (haystack[key] == needle) {
return true;
}
}
}
return false;
}
function randomNumber (m,n){
m = parseInt(m);
n = parseInt(n);
number = Math.floor( Math.random() * (n - m + 1) ) + m;
// return number;
if( in_array( number, have_been ) ){
// Нужно быть аккуратным, что бы массив have_been не переполнился всеми возможными значениями, иначе возникнет бесконечный цикл
return randomNumber(m,n);
} else {
have_been.push(number);
return number;
}
}
alert( randomNumber(1,10000) );
alert( randomNumber(1,10000) );
alert( randomNumber(1,10000) );
alert( have_been );
Вообщето, можно просто использовать функцию randomNumber без модификаций, с параметрами 1, большое число, то вероятность повторения очень мала
Последний раз редактировалось Naydav; 30.07.2009 в 17:08..
|
|
|