mein schlechtes Kabeljau gleich:
function generationMatrix(number) {
var coefficient = 1/number;
var indexMass = Array(number);
var matrix = Array(number);
// Create an array with uniformly distributed mean values
for (var i = 0; i < number; i++) {
indexMass[i] = i;
var row = Array(number);
for (var j = 0; j < number; j++) {
row[j] = getRandom(coefficient/2, coefficient);
}
matrix[i] = row;
}
// In (number-1) lines, we change the random element to such that the sum of the elements in the (row) is equl 1
for (var i = 0; i < number - 1; i++) {
var rand_index = indexMass.splice((Math.floor(Math.random() * indexMass.length)), 1);
matrix[i].splice(rand_index, 1);
var newElem = 1 - matrix[i].reduce((a, b) => a + b, 0);
matrix[i].splice(rand_index, 0, newElem);
}
// TReplace the remaining (row) with a (row) such that the sum of the elements in the columns is equl 1
for (var i = 0; i < number; i++) {
var sum = 0;
for (var j = 0; j < number; j++) {
if (j != indexMass[0])
sum += matrix[i][j];
}
matrix[indexMass[0]][i] = 1 - sum;
}
return matrix;
}
Welche Schwierigkeiten konfrontiert sind Sie? Hast du irgendwas probiert? – FirstOne
Die Summe der Elemente in den Zeilen und Spalten muss gleich eins sein –
@TerenikDmitry Wollen Sie negative Zahlen? –