Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Symbol:
- def __init__(self, c: str) -> None:
- if c not in ['0', '1']:
- raise Exception("Не входит в поле")
- self.symbol = c
- def __add__(a, b):
- if not isinstance(b, Symbol):
- raise Exception("Нельзя складывать символ и невесть что")
- a_i = int(a.symbol)
- b_i = int(b.symbol)
- return Symbol(str((a_i + b_i) % 2))
- class CodeVector:
- def __init__(self, symbols: list[Symbol]) -> None:
- self.symbols: list[Symbol] = symbols
- def __str__(self) -> str:
- return " ".join([s.symbol for s in self.symbols])
- def from_string(s: str) -> "CodeVector":
- return CodeVector(symbols=[Symbol(c=c) for c in s])
- def __getitem__(obj, k):
- if not isinstance(k, int):
- raise Exception("Неправильная индексация")
- return obj.symbols[k]
- def inf_vector_to_code(v: CodeVector) -> CodeVector:
- summ0: Symbol = v[0] + v[1] + v[3] + v[4] + v[6] + v[8] + v[10]
- summ1: Symbol = v[0] + v[2] + v[3] + v[4] + v[5] + v[9] + v[10]
- summ2: Symbol = v[1] + v[2] + v[3] + v[7] + v[8] + v[10] + v[10]
- summ3: Symbol = v[4] + v[5] + v[6] + v[7] + v[8] + v[9] + v[10]
- p0 = Symbol('0') if summ0.symbol == '0' else Symbol('1')
- p1 = Symbol('0') if summ1.symbol == '0' else Symbol('1')
- p2 = Symbol('0') if summ2.symbol == '0' else Symbol('1')
- p3 = Symbol('0') if summ3.symbol == '0' else Symbol('1')
- final_string: str = f"{p0.symbol}{p1.symbol}{v[0].symbol}{p2.symbol}{v[1].symbol}{v[2].symbol}{v[3].symbol}{p3.symbol}{v[4].symbol}{v[5].symbol}{v[6].symbol}{v[7].symbol}{v[8].symbol}{v[9].symbol}{v[10].symbol}"
- return CodeVector.from_string(final_string)
- inf_v = CodeVector.from_string("10001010111")
- print(inf_vector_to_code(inf_v))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement