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í
×
    dnes 16:44 | Komunita

    Richard Hughes oznámil, že po společnostech Red Hat a Framework a organizacích OSFF a Linux Foundation, službu Linux Vendor Firmware Service (LVFS) umožňující aktualizovat firmware zařízení na počítačích s Linuxem, nově sponzorují také společnosti Dell a Lenovo. Do dnešního dne bylo díky LVFS provedeno více než 145 milionů aktualizací firmwarů od více než 100 různých výrobců na milionech linuxových zařízení.

    Ladislav Hagara | Komentářů: 0
    dnes 15:22 | IT novinky

    Americké technologické společnosti Microsoft, Google a xAI souhlasily, že vládě Spojených států poskytnou přístup k novým modelům umělé inteligence (AI) před jejich uvedením na trh. Oznámila to americká vláda, která tak bude moci prověřit, zda modely nepředstavují hrozbu pro národní bezpečnost. Oznámení podtrhuje rostoucí obavy Washingtonu z rizik spojených s výkonnými AI systémy. Americké úřady chtějí v rámci předběžného přístupu

    … více »
    Ladislav Hagara | Komentářů: 0
    dnes 14:11 | IT novinky

    Společnost Valve zveřejnila (GitLab) nákresy ovladače Steam Controller a puku. Pro všechny, kdo by jej chtěli hacknout nebo modifikovat, případně pro ně navrhnout nějaké příslušenství. Pod licencí Creative Commons (CC BY-NC-SA 4.0).

    Ladislav Hagara | Komentářů: 0
    dnes 12:44 | Komunita

    PHP bylo dlouho distribuováno pod vlastní licencí – s výjimkou částí spadajících pod licenci Zend Engine. Po několikaleté práci se povedlo PHP přelicencovat na 3bodovou licenci BSD.

    Ladislav Hagara | Komentářů: 0
    dnes 05:00 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube). Na Linuxu je vedle Qt frontendu nově k dispozici také GTK4 / libadwaita frontend.

    Ladislav Hagara | Komentářů: 17
    včera 20:22 | IT novinky

    Neziskové průmyslové konsorcium Khronos Group vydalo verzi 3.1 specifikace OpenCL (Open Computing Language). OpenCL je průmyslový standard pro paralelní programování heterogenních počítačových systémů.

    Ladislav Hagara | Komentářů: 0
    včera 13:11 | Nová verze

    Homebridge pro integraci chytrých domácích zařízení byl vydán ve verzi 2.0.0. Nově vedle protokolu HomeKit Accessory Protocol (HAP) podporuje standard chytré domácnosti Matter.

    Ladislav Hagara | Komentářů: 0
    včera 04:11 | Nová verze

    Omarchy je linuxová distribuce s dlaždicovým správcem oken Hyprland. Založena je na Arch Linuxu. Vydána byla v nové verzi 3.7.0 - The Gaming Edition. Z novinek lze vypíchnout příkaz omarchy a celou řadu herních možností.

    Ladislav Hagara | Komentářů: 2
    včera 03:11 | Nová verze

    CyberChef byl vydán v nové major verzi 11. Přehled novinek v Changelogu. CyberChef je webová aplikace pro analýzu dat a jejich kódování a dekódování, šifrování a dešifrování, kompresi a dekompresi, atd. Často je využívaná při kybernetických cvičeních a CTF (Capture the Flag).

    Ladislav Hagara | Komentářů: 0
    4.5. 20:11 | Nová verze

    Byla vydána nová verze 2.4.67 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 11 zranitelností.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (14%)
     (9%)
     (2%)
     (14%)
     (31%)
     (4%)
     (7%)
     (3%)
     (16%)
     (24%)
    Celkem 1515 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.