d = {i: nums.count(i) for i in nums}
function distribute(arr, val) {
let n = arr.length;
let dVal = val;
while (dVal > 0) {
let d = dVal / n;
dVal = 0;
for (let i = 0; i < arr.length; i += 1) {
if (arr[i] === 1) {
continue;
}
arr[i] += d;
if (arr[i] < 1) {
continue;
}
dVal += arr[i] - 1;
arr[i] = 1;
n -= 1;
if (n === 0) {
return undefined;
}
}
}
return arr;
}
function find(sum, n, m) {
if (n === 1) {
return [`${sum}`];
}
const result = [];
const min = Math.max(m, Math.floor(sum - (n - 1) * 9));
const max = Math.floor(sum / n);
for (let i = min; i <= max; i += 1) {
find(sum - i, n - 1, i).forEach((el) => result.push(`${i}${el}`));
}
return result;
}
function findAll(sum, n) {
if (sum > n * 9 || sum < n) {
return [];
}
const result = find(sum, n, 1);
return [result.length, result[0], result.pop()];
}
const movingAverage = (data, windowSize) => {
let sum = data.slice(0, windowSize).reduce((acc, cur) => acc + cur, 0);
const result = [sum / windowSize];
for (let i = windowSize; i < data.length; i += 1) {
sum = sum - data[i - windowSize] + data[i];
result.push(sum / windowSize);
}
return result;
};
console.log(movingAverage([9, 3, 2, 0, 1, 5, 1, 0, 0], 3));
// Array(7) [ 4.666666666666667, 1.6666666666666667, 1, 2, 2.3333333333333335, 2, 0.3333333333333333 ]
$isNotOverlapped = $range2start > $range1end || $range1start > $range2end;
$isOverlapped = !($range2start > $range1end || $range1start > $range2end);
$isOverlapped = $range2start <= $range1end && $range1start <= $range2end;
Когда конечный автомат переходит из одного состояния в другое, он выполняет какие-то действия?Может выполнять. Скажем, для распознавания ключевых слов достаточно знать, в каком допускающем состоянии оказался автомат, а вот для распознавания чисел уже необходимо при переходе выполнять дополнительные действия.
Могут ли из одного состояния в другое, передаваться параметры, как из одной функции в другую?Кроме текущего состояния автомат может помнить какой-то набор параметров, не влияющих на переходы, но меняющийся при переходах. Пример - то же самое распознавание чисел. Автомат должен вычислить/запомнить знак, мантиссу и значение степени.
Что это за входная строка такая? Можно ли обойтись без неё?Входная строка - это строка, состоящая из входных символов, которые управляют переходом автомата из состояния в состояние. Для чисел это будет набор символов
+-123456789.e
. Без входной строки автомату нечего будет распознавать. a = 0;
for (x = 0; 2 * x <= 30; x += 1) {
for (y = 0; 2 * x + 3 * y <= 30; y += 1) {
if (a < x + y) {
a = x + y;
}
}
}