abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:00 | IT novinky

    Framework [ Next Gen ] Event 2026, dnes v 19:30 společnost Framework na YouTube něco představí.

    Ladislav Hagara | Komentářů: 0
    včera 18:22 | Nová verze

    Byl vydán Mozilla Firefox 150.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 150 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 0
    včera 17:22 | Zajímavý software

    Byl představen (reddit, 𝕏) webový prohlížeč Brave Origin. Jedná se webový prohlížeč Brave bez VPN, krypto peněženky a odměn, tj. bez funkcí, ze kterých je vývoj Brave financován. Stojí jednorázově 59,99 dolarů. Verze pro Linux je zdarma.

    Ladislav Hagara | Komentářů: 1
    včera 12:44 | IT novinky

    Tim Cook po 15 letech opustí post generálního ředitele americké technologické společnosti Apple. Od 1. září ho vystřídá John Ternus, který byl dosud odpovědný za hardware. Cook se stane předsedou představenstva. Cook vedl Apple od roku 2011, kdy funkci převzal od zesnulého spoluzakladatele společnosti Stevea Jobse.

    Ladislav Hagara | Komentářů: 1
    včera 12:33 | Humor

    Evropská aplikace na ověřování věku uživatelů lze hacknout během dvou minut, navzdory tvrzením předsedkyně Evropské komise Uršuly von der Leyenové, že je tato aplikace 'technicky připravená pro ostré nasazení' a 'splňuje nejvyšší standardy ochrany osobních údajů na světě'. Zdrojové kódy aplikace byly Bruselem zveřejněny v repozitářích na GitHubu.

    MakeIranBombedAgain❗ | Komentářů: 4
    20.4. 15:33 | IT novinky

    Po 26 letech od protiprávního policejního zásahu, který byl spuštěn na základě podnětu společnosti Microsoft, Obvodní soud pro Prahu 2 rozsudkem potvrdil, že Mironet prokázal významnou část svého nároku na náhradu škody vůči Ministerstvu spravedlnosti ČR. Soudem nyní přiznaná část nároku znamená rekordní odškodné, jaké kdy české soudy přiznaly za nesprávný postup státu. Spor byl rozdělen na několik škod, u pravomocně uzavřených částí

    … více »
    Ladislav Hagara | Komentářů: 28
    20.4. 15:22 | Nová verze

    Lehké desktopové prostředí LXQt bylo vydáno ve verzi 2.4.0. Jde o převážně opravné vydání s drobnými vylepšeními podpory Waylandu.

    |🇵🇸 | Komentářů: 0
    20.4. 12:44 | IT novinky

    Počítačová hra Kingdom Come: Deliverance 2 českého studia Warhorse získala cenu BAFTA v kategorii nejlepší příběh. V konkurenci pěti dalších nominovaných děl porazila i úspěšnou francouzskou hru Clair Obscur: Expedition 33, která v letošním ročníku získala cenu za nejlepší hru roku.

    Ladislav Hagara | Komentářů: 1
    20.4. 12:22 | Komunita

    Projekt KDE oslaví v říjnu 30 let. Matthias Ettrich poslal 14. října 1996 do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu. Důležité milníky jsou zobrazeny na časové ose KDE.

    Ladislav Hagara | Komentářů: 2
    20.4. 02:55 | Komunita

    Byly vyhlášeny výsledky letošní volby vedoucí/ho projektu Debian (DPL, Wikipedie). Poprvé povede Debian žena. Novou vedoucí je Sruthi Chandran. Letos byla jedinou kandidátkou. Kandidovala již v letech 2020, 2021, 2024 a 2025. Na konferenci DebConf19 měla přednášku Is Debian (and Free Software) gender diverse enough?

    Ladislav Hagara | Komentářů: 16
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (8%)
     (1%)
     (12%)
     (30%)
     (3%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 1373 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Dotaz: Jak na algoritmus Berlekamp–Massey ?

    3.4.2023 17:19 Lamada
    Jak na algoritmus Berlekamp–Massey ?
    Přečteno: 614×
    Ahoj, trápím se s algoritmem Berlekamp–Massey v pythonu a nemůžu ho rozchodit. Základ mám z githubu https://github.com/thewhiteninja/lfsr-berlekamp-massey Nedaří se mi podle získaného polynomu vygenerovat počáteční sequency. Myslím, že je tu hodně neznámých, jako pořadí polynomu, počáteční stav a zda má být přítomen člen x^0.

    Kód je zde
    def berlekamp_massey_algorithm(seq):
        n = len(seq)
        b, c = [0]*n, [0]*n
        b[0], c[0] = 1, 1
        L, m, i = 0, -1, 0
        for j in range(n):
            d = seq[j]
            for k in range(1, L+1):
                d ^= c[k] & seq[j-k]
            if d == 1:
                t = c.copy()
                p = [0]*n
                for k in range(n-j+m):
                    p[k] = b[k+j-m] ^ t[k]
                if L <= j//2:
                    L = j + 1 - L
                    m = j
                    b, c = t, p
                else:
                    for k in range(n-j+m):
                        c[k] = b[k+j-m] ^ p[k]
        return L, b[:L+1], c[:L+1]
    
    
    def generate_lfsr_output(poly, seq_len):
        n = len(poly)
        state = [0]*(n-1) + [1]
        output = []
        for i in range(seq_len):
            out = state[-1]
            for j in range(n-1):
                if poly[j+1]:
                    out ^= state[j]
            state = [out] + state[:-1]
            output.append(out)
        return output
    
    def main():
        seq = [0, 1, 1, 0, 1, 0, 0, 1]
        L, b, c = berlekamp_massey_algorithm(seq)
        print(f"Shortest LFSR length: {L}")
        print("LFSR polynomial coefficients (backward):")
        print(b[::-1])
        generated_seq = generate_lfsr_output(b[::-1], len(seq))
        print("Generated sequence:")
        print(generated_seq)
        print("Verification result:")
        print(seq == generated_seq)
    
    if __name__ == '__main__':
        main()
    Výstup vypadá takto
    Shortest LFSR length: 4
    Polynomial: x^4 + x^3 + x^1
    LFSR polynomial coefficients (backward): [1, 1, 0, 1, 0]
    original sequence:
    [0, 1, 1, 0, 1, 0, 0, 1]
    Generated sequence:
    [1, 1, 0, 0, 1, 0, 0, 0]
    Verification result:
    False

    Odpovědi

    3.4.2023 17:45 X
    Rozbalit Rozbalit vše Re: Jak na algoritmus Berlekamp–Massey ?
    Jeste jedna a druha implementace..
    3.4.2023 17:47 X
    Rozbalit Rozbalit vše Re: Jak na algoritmus Berlekamp–Massey ?
    Mimochodem, domaci ukol?
    3.4.2023 21:01 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: Jak na algoritmus Berlekamp–Massey ?
    Keby aj bol, tak si zaslúži odpoveď, pretože vyvinul vlastné úsilie a potrebuje len poradiť. Nechce, aby niekto problém vyriešil za neho.
    3.4.2023 22:08 Lamada
    Rozbalit Rozbalit vše Re: Jak na algoritmus Berlekamp–Massey ?
    Domácí úkol to není, do školy už nechodím. V úkázce výše jsem vložil starší kód, ale nový výstup, omlouvám se. Novější kód je ze stránky https://raw.githubusercontent.com/bozhu/BMA/master/bma.py je tady
    def berlekamp_massey(sequence):
        n = len(sequence)
        s = list(map(int, sequence))
    
        k = 0
        for k in range(n):
            if s[k] == 1:
                break
        f = {k + 1, 0}
        l = k + 1
    
        g = {0}
        a = k
        b = 0
    
        for n in range(k + 1, n):
            d = 0
            for item in f:
                d ^= s[item + n - l]
    
            if d == 0:
                b += 1
            else:
                if 2 * l > n:
                    f ^= set([a - b + item for item in g])
                    b += 1
                else:
                    temp = f.copy()
                    f = set([b - a + item for item in f]) ^ g
                    l = n + 1 - l
                    g = temp
                    a = b
                    b = n - l + 1
    
    
        degree = max(f)
        c = [0] * (degree + 1)
        for exp in f:
            c[degree - exp] = 1
    
        return f, c, l
    
    def get_polynomial_string(f):
            result = ''
            lis = sorted(f, reverse=True)
            for i in lis:
                if i == 0:
                    result += '1'
                else:
                    result += 'x^%s' % str(i)
    
                if i != lis[-1]:
                    result += ' + '
            return result
    
    def generate_lfsr_output(poly, seq_len, seq):
        n = len(poly)
        state = seq[:n-1][::-1]
        output = []
        for i in range(seq_len):
            out = state[0]
            for j in range(1, n):
                if poly[j]:
                    out ^= state[j-1]
            state = [out] + state[:-1]
            output.append(out)
        return output[::-1]
    
    
    def main():
        seq = [0, 1, 1, 0, 1, 0, 0, 1]
        seq2 = [1, 1, 1, 1, 1, 1, 1, 1]
        f, c, L = berlekamp_massey(seq)
        print("Shortest LFSR length: {}".format(L))
        print("Polynomial: {}".format(get_polynomial_string(f)))
        print("LFSR polynomial coefficients (backward): {}".format(c))
        generated_seq = generate_lfsr_output(c[::-1], len(seq), seq2)
        print("original sequence:")
        print(seq)
        print("Generated sequence:")
        print(generated_seq)
        print("Verification result:")
        print(seq == generated_seq)
    
    
    if __name__ == '__main__':
        main()
    
    berlekamp_massey je pravděpodobně dobře, myslím, že je problém v generování LFSR, počátečním stavu, nebo tvaru polynomu.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.