Mam pewien problem z matematyką. Mam kilka pól bitowych i chciałbym obliczyć, jaki podzestaw ich użyć, aby uzyskać inne pole bitowe, lub jeśli nie ma sposobu, aby to zrobić, odkryć, że nie istnieje taki podzbiór.Jak znaleźć podzbiór bitfields xor na inne bitfield?
Chciałbym zrobić to za pomocą wolnej biblioteki, a nie oryginalnego kodu, i zdecydowanie wolałbym coś z powiązaniami w Pythonie (używanie wbudowanych bibliotek matematycznych Pythona byłoby również akceptowalne, ale chcę portować w końcu do wielu języków). Poza tym dobrze byłoby nie brać w pamięci trafienia konieczności rozszerzania każdego bitu do własnego bajtu.
Kilka dodatkowych wyjaśnień: Potrzebuję tylko jednego rozwiązania. Moje matryce są przeciwieństwem rzadkości. Jestem bardzo zainteresowany utrzymaniem środowiska wykonawczego na absolutnym minimum, więc zdecydowanie preferowane jest stosowanie algorytmicznych metod odwracania matryc. Ponadto bardzo ważne jest, aby konkretne dane pole bitowe było tym, które zostało wyprowadzone, więc technika, która właśnie znajduje podzbiór, który xor do 0, nie całkiem go wycina.
I ogólnie jestem świadomy gaussowskiej eliminacji. Próbuję tego uniknąć od zera!
cross-wysłana do mathoverflow, ponieważ nie jest jasne, co właściwe miejsce na to pytanie jest - https://mathoverflow.net/questions/41036/how-to-find-which-subset-of-bitfields-xor-to-another-bitfield
m4ri wygląda obiecująco, ale argh, biblioteki ogólnego przeznaczenia nie powinny być GPL! –