SStepMaranta
Продукт

Возможности программы · Шаги конечного распределения Маркова

01

Держите исходный вектор и строки переходов вместе при проверке сохранения вероятностной массы во время итерации.

01

Подключение

Базовый URL, учётные данные и доступный сервер.

02

Выбор

Модель, которую предоставляет настроенный endpoint.

03

Возможности

Объём контекста и поддержка инструментов определяются моделью и сервером.

Шаги конечного распределения Маркова

● ● ●StepMaranta●
Конкретная отправная точка · Шаги конечного распределения Маркова ×
from math import fsum, isfinite
def markov_steps(initial, matrix, steps):
    if type(initial) is not list or not 1 <= len(initial) <= 8:
        raise ValueError("state count")
    n = len(initial)
    if type(matrix) is not list or len(matrix) != n or any(
        type(row) is not list or len(row) != n for row in matrix):
        raise ValueError("square matrix")
    rows = [initial] + matrix
    if any(type(x) not in (int, float) or not 0 <= x <= 1 or
           not isfinite(x) for row in rows for x in row):
        raise ValueError("probability values")
    if any(abs(fsum(row)-1) > 1e-12 for row in rows):
        raise ValueError("row sums")
    if type(steps) is not int or not 0 <= steps <= 100:
        raise ValueError("step count")
    result = initial[:]
    for _ in range(steps):
        result = [fsum(result[i] * matrix[i][j] for i in range(n))
                  for j in range(n)]
    return result
✳Продвиньте вектор вероятностей на максимум 100 переходов матрицы Маркова с не более восемью состояниями.
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗