Когда конечный автомат переходит из одного состояния в другое, он выполняет какие-то действия?Может выполнять. Скажем, для распознавания ключевых слов достаточно знать, в каком допускающем состоянии оказался автомат, а вот для распознавания чисел уже необходимо при переходе выполнять дополнительные действия.
Могут ли из одного состояния в другое, передаваться параметры, как из одной функции в другую?Кроме текущего состояния автомат может помнить какой-то набор параметров, не влияющих на переходы, но меняющийся при переходах. Пример - то же самое распознавание чисел. Автомат должен вычислить/запомнить знак, мантиссу и значение степени.
Что это за входная строка такая? Можно ли обойтись без неё?Входная строка - это строка, состоящая из входных символов, которые управляют переходом автомата из состояния в состояние. Для чисел это будет набор символов
+-123456789.e
. Без входной строки автомату нечего будет распознавать. const monteCarlo = (tryCount) => {
let positive = 0;
for (let i = 0; i < tryCount; i += 1) {
const a = Math.random();
const b = Math.random();
const D = a * a + 8 * b;
const x = (-a + Math.sqrt(D)) / 2;
if (x > 1) {
positive += 1;
}
}
return(positive / tryCount);
}
monteCarlo(1000000); // 0.249374
monteCarlo(10000000); // 0.2500279
function flags($value) {
if (!in_array($value, [0, 1, 2, 3, 6, 7, 8, 9])) {
return false;
}
$result = [];
if (in_array($value, [1, 3, 7, 9])) {
$result[] = 'a';
}
if (in_array($value, [2, 3, 8, 9])) {
$result[] = 'b';
}
if (in_array($value, [6, 7, 8, 9])) {
$result[] = 'c';
}
return $result;
}