SStateAmaranth
İş akışları

Kodlama iş akışları · Erişilebilir DFA durum eşdeğerliği

03
Ürün

İş akışları

En çok 16 durumlu ve dört sembollü tam DFA'nın erişilebilir durumlarını kabul edilen son eklere göre gruplayın. Eşdeğer ve ayırt edilebilir durumları sınayın; erişilemeyenleri dışlayıp geçersiz geçişleri reddedin.

01

Uygulamayı indirin

Bir klasör seçin ve düzenlemeden önce ilgili dosyaları okumasını asistandan isteyin. Görevin hedefini ve sınırlarını belirleyin.

02

Proje klasörünü açın

Uyumlu bir endpoint seçin. Kullanılabilir araçlar ve yanıt kalitesi, yapılandırılan modele ve sunucuya bağlıdır.

03

Modeli bağlayıp test edin

Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.

04

Değişiklikleri inceleyip testleri çalıştırın

Gerçek davranışı beklenen sonuçla karşılaştırın. Bir kontrol başarısız olursa yeni değişikliklerden önce nedenini araştırın.

Erişilebilir DFA durum eşdeğerliği

İş akışları
def dfa_classes(table, accepting):
    if type(table) is not list or not 1 <= len(table) <= 16:
        raise ValueError("state count")
    n = len(table)
    if type(table[0]) is not list or not 1 <= len(table[0]) <= 4:
        raise ValueError("alphabet size")
    width = len(table[0])
    if any(type(row) is not list or len(row) != width or
           any(type(x) is not int or not 0 <= x < n for x in row)
           for row in table):
        raise ValueError("complete transition table")
    if type(accepting) is not set or any(
        type(x) is not int or not 0 <= x < n for x in accepting):
        raise ValueError("accepting states")
    seen, pending = {0}, [0]
    while pending:
        for dest in table[pending.pop()]:
            if dest not in seen:
                seen.add(dest); pending.append(dest)
    groups = [g for g in (seen & accepting, seen - accepting) if g]
    while True:
        owner = {s: i for i, g in enumerate(groups) for s in g}
        refined = []
        for group in groups:
            buckets = {}
            for state in sorted(group):
                key = tuple(owner[d] for d in table[state])
                buckets.setdefault(key, set()).add(state)
            refined.extend(buckets.values())
        if len(refined) == len(groups):
            return sorted([sorted(g) for g in refined])
        groups = refined

Uygulamadan önce inceleyin. Değişiklikleri ve komut çıktılarını inceleyin. Sonucu kabul etmeden önce proje kontrollerini çalıştırın; üretilen kod otomatik olarak test edilmiş değildir.

Yapay zekâ ile kod çalışma alanı

Bir sonraki fikriniz burada başlar.

Windows için indir ↗