Skip to content

Instantly share code, notes, and snippets.

@Ni55aN
Created June 11, 2018 22:31
Show Gist options
  • Save Ni55aN/af7ad6e221439f996c0c74fc6d374257 to your computer and use it in GitHub Desktop.
Save Ni55aN/af7ad6e221439f996c0c74fc6d374257 to your computer and use it in GitHub Desktop.
const LabMath = {
"маточікування": function avarage(arr) {
return arr.reduce((a, b) => a + b, 0) / arr.length;
},
"медіана": function(arr) {
return arr.sort((a, b) => a - b)[Math.floor(arr.length / 2)];
},
"напівсума «крайніх» спостережень": function(arr) {
return (Math.min(...arr) + Math.max(...arr)) / 2;
},
"середнє квадратичне відхилення": function(arr) {
var av = LabMath['маточікування'](arr);
var n = arr.length;
return Math.sqrt(1 / n * arr.reduce((a, b) => a + Math.pow(b - av, 2), 0));
},
"середній модуль відхилень": function(arr) {
var n = arr.length;
var med = LabMath['медіана'](arr);
return 1 / n * arr.reduce((a, b) => a + Math.abs(b - med), 0);
},
"розмах": function(arr) {
return Math.max(...arr) - Math.min(...arr);
},
"дисперсія": function(arr) {
var n = arr.length;
var av = LabMath['маточікування'](arr);
return 1 / n * arr.reduce((a, b) => a + Math.pow(b - av, 2), 0);
},
"мінімальне значення": function(arr) {
return Math.min(...arr);
},
"максимальне значення": function(arr) {
return Math.max(...arr);
},
"нормування": function(arr) {
var s = LabMath['середнє квадратичне відхилення'](arr);
var av = LabMath['маточікування'](arr);
return arr.map(v => (v - av) / s);
},
"кодування на гіперкулю": function(arr) {
var min = Math.min(...arr);
var max = Math.max(...arr);
return arr.map(v => (v - min) / (max - min));
},
"кодування на гіперкуб": function encodingHypercube(arr) {
var min = Math.min(...arr);
var max = Math.max(...arr);
return arr.map(v => 2 * (v - min) / (max - min) - 1);
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment