рони,
Ок
================
// Тест средне-статистического числа повторов Math.random() на создание неповторяющегося массива из 1000 элементов
function indexRandom(lng){
var numRnd = 0;
var a = {},i,out=[],n=0;
while (n!=lng){
i = Math.floor(lng*Math.random()); numRnd++;
if(typeof(a[i])=='undefined'){
a[i]=i; out.push(i);
n++;
}
}
return numRnd;
}
function repeat(n){
var N=0;n2=n
while (--n2){
N+= indexRandom(1000);
}
return N/n;
}
alert('N='+repeat(10000))
// Тест средне-статистического числа повторов Math.random() на создание неповторяющегося массива из 20 элементов
function indexRandom(lng){
var numRnd = 0;
var a = {},i,out=[],n=0;
while (n!=lng){
i = Math.floor(lng*Math.random()); numRnd++;
if(typeof(a[i])=='undefined'){
a[i]=i; out.push(i);
n++;
}
}
return numRnd;
}
function repeat(n){
var N=0;n2=n
while (--n2){
N+= indexRandom(20);
}
return N/n;
}
alert('N='+repeat(10000))
// Тест средне-статистического числа повторов Math.random() на создание неповторяющегося массива из 10 элементов
function indexRandom(lng){
var numRnd = 0;
var a = {},i,out=[],n=0;
while (n!=lng){
i = Math.floor(lng*Math.random()); numRnd++;
if(typeof(a[i])=='undefined'){
a[i]=i; out.push(i);
n++;
}
}
return numRnd;
}
function repeat(n){
var N=0;n2=n
while (--n2){
N+= indexRandom(10);
}
return N/n;
}
alert('N='+repeat(10000))
=======================
Зы: Примерная апроксимация кол-ва обращений к Math.random() по четырём точкам:
n - длина массива
x =
n+n^1.26