JSFiddle - React, Tailwind, and code Playground
by Timatnet
HTML
<div id="log"></div>
(1 => 22561114270347.098 => 14)
(10 => 3809612967158.597 => 13)
(100 => 2155510236028.285 => 13)
JavaScript
function log(x) {
$('#log')
.append(
'<pre>' +
JSON.stringify(x, null, 2)
+ '</pre>'
);
};
var x = [[2005, 2006, 2007, 2008],
[2005, 2006, 2007, 2008],
[2005, 2006, 2007, 2008],
// Стоимость чистых активов эмитента, тыс. руб.
[10000, 10000, 808313, 725537],
// Отношение суммы привлеченных средств к капиталу и резервам, %
[0, 0, 7.58, 112.26],
// Общая сумма долгосрочных и краткосрочных обязательств*, тыс. руб.
[0, 0, 306, 694200],
// Объем выручки (дохода) эмитента от хозяйственной деятельности, тыс. руб.
[0, 0, 3269268, 5124973],
// Население России по годам
[144000000, 144000000, 143000000, 143000000],
// Прирост населения России по годам
[-0.321, -0.232, -0.15, -0.0917]];
var xnext = [[2009], [2009], [2009], [751297], [53.42], [314409], [3486486], [143000000], [-0.692]];
function random_matrix(N, M) {
var rm = [];
for(var i = 0; i < N; ++i) {
var rml = [];
for(var j = 0; j < M; ++j) {
rml.push(1000000*(Math.random()-Math.random()));
}
rm.push(rml);
}
return rm;
}
function next_layer(prev, a) {
var N = Math.min(prev.length, a.length), M = Math.min(prev[0].length, a[0].length);
var next = [];
for(var i = 0; i < N; ++i) {
var xij = 0;
var i1 = N-i-1;
if(i1 < 0) i1 += N;
for(var j = 0; j < M; ++j) {
var j1 = Math.max(M-j-1,0);
xij += a[i1][j1]*prev[i1][j1];
}
next.push([xij]);
}
return next;
}
function distance(l1, l2) {
var r = 0;
for(var i = 0; i < l1.length; ++i) {
r += Math.abs(l1[i][0]-l2[i][0]);
//log(l1[i][0]-l2[i][0]);
}
return r;
}
var rm = random_matrix(x.length, x.length);
var current_last_layer = [];
var current_prev = [];
for(var i = 0; i < x.length; ++i) {
...