Scarica l’applicazione
Seleziona una cartella e chiedi all’assistente di leggere i file interessati prima di modificarli. Definisci obiettivo e limiti dell’attività.
Avanza un vettore di probabilità fino a 100 transizioni di una matrice di Markov con massimo otto stati. Controlla zero passi e stati assorbenti, rifiutando valori negativi e somme di riga distanti da uno oltre 1e-12.
Seleziona una cartella e chiedi all’assistente di leggere i file interessati prima di modificarli. Definisci obiettivo e limiti dell’attività.
Scegli un endpoint compatibile. Gli strumenti disponibili e la qualità delle risposte dipendono dal modello e dal server configurati.
Controlla le modifiche e l’output dei comandi. Esegui le verifiche del progetto prima di accettare il risultato: il codice generato non è automaticamente collaudato.
Confronta il comportamento effettivo con il risultato atteso. Se una verifica fallisce, indaga la causa prima di altre modifiche.
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 resultControlla prima di applicare. Controlla le modifiche e l’output dei comandi. Esegui le verifiche del progetto prima di accettare il risultato: il codice generato non è automaticamente collaudato.