def write_dict_for_decode(self): helper = Help() print("dictionary_for_decoder:") for i in range(0, len(self.standart_placement)): syndrom_leader = self.syndrom_table[i] print("{", syndrom_leader, ": " , end = '') weight_list = list() for coset in self.standart_placement[i]: weight = helper.calculate_weight_for_vector(coset) if (weight <= self.t): weight_list.append(list(coset)) print(weight_list, "} ")
def calculate_probability(self): helper = Help() syn_leader_list = list() weight_and_count = dict() for i in range(0, self.t + 1): weight_and_count[i] = 0 i = 0 while i < len(self.standart_placement): leader = self.standart_placement[i][0] weight = helper.calculate_weight_for_vector(leader) if (weight <= self.t): weight_and_count[weight] = weight_and_count[weight] + 1 i = i + 1 prob_e_leader = 0 for weight in weight_and_count.keys(): prob = (self.p ** weight) * ((1 - self.p) ** (self.n - weight)) prob_e_leader = prob_e_leader + (weight_and_count[weight] * prob) prob_e_not_leader = 1 - prob_e_leader return prob_e_not_leader