| 12345678910111213141516171819202122232425262728293031323334353637 | function Utils() {}KMEANS.prototype.getRandomVector = function(extremes) {  var maxDim = extremes.length;  var x = [];  var r = 0;    // calculate radius of n-sphere which covers all points in dataset  var nSphereRadius = 0;  for (var i = 0; i < maxDim; i++) {    var extreme = extremes[i];    var er = Math.max(extreme.center - extreme.min, extreme.center - extreme.max);    if (er > nSphereRadius)      nSphereRadius = er;  }    for (var i = 0; i < maxDim; i++) {    var val = (Math.random() * 2) - 1;    // adjust to radius of n-sphere    x.push(val);    r += val * val;  }        r = Math.sqrt(r);    for (var i = 0; i < maxDim; i++) {    x[i] /= r;    // resize to fit n-sphere    x[i] *= nSphereRadius;    x[i] += extremes[i].center;  }    return x;}
 |