コード例 #1
0
ファイル: code_builder.py プロジェクト: vinevg1996/code_task4
 def create_standart_placement(self):
     helper = Help()
     code_words = list()
     for word in self.words:
         code_word = helper.mult_vector_for_matrix(word, self.G_matrix)
         code_words.append(code_word)
     '''
     print("code_words:")
     for code_word in code_words:
         print(code_word)
     '''
     self.standart_placement.append(code_words)
     depend_list = [0 for x in range(0, 2 ** self.n)]
     for code_word in code_words:
         dec = helper.convert_binary_to_decimal(code_word, self.n)
         depend_list[dec] = 1
     for i in range(0, 2 ** self.r - 1):
         leader = helper.find_min_weight_in_depend_list(depend_list, self.n)
         #print("leader = ", leader)
         coset = list()
         for code_word in code_words:
             coset_word = helper.xor(leader, code_word)
             dec = helper.convert_binary_to_decimal(coset_word, self.n)
             depend_list[dec] = 1
             #print("coset_word = ", coset_word)
             coset.append(coset_word)
         self.standart_placement.append(coset)
     #print("depend_list = ", depend_list)
     return
コード例 #2
0
ファイル: code_builder.py プロジェクト: vinevg1996/code_task4
 def create_depended_cols(self, size, depend_list):
     helper = Help()
     Comb = Combinatorics()
     for i in range(2, self.d):
         allCombinations = []
         Comb.GenerationAllCombinations(allCombinations, size, i)
         for combination in allCombinations:
             new_vector = helper.sum_of_vectors(self.H_transpose, combination)
             dec = helper.convert_binary_to_decimal(new_vector, self.r)
             #print("dec = ", dec)
             depend_list[dec] = 1
     return
コード例 #3
0
ファイル: code_builder.py プロジェクト: vinevg1996/code_task4
 def create_H_matrix(self):
     helper = Help()
     Comb = Combinatorics()
     depend_list = [0 for x in range(0, 2 ** self.r)]
     depend_list[0] = 1
     for i in range(0, self.r):
         curr_list = [0 for x in range(0, self.r)]
         curr_list[i] = 1
         dec = helper.convert_binary_to_decimal(curr_list, self.r)
         depend_list[dec] = 1
         self.H_transpose.append(curr_list)
     size = self.r
     while size < self.n - 1:
         self.create_depended_cols(size, depend_list)
         zero_index = depend_list.index(0)
         new_vector = helper.convert_decimal_to_binary(zero_index, self.r)
         self.H_transpose.append(new_vector)
         depend_list[zero_index] = 1
         size = size + 1
     dep_combination = [j for j in range(0, self.d - 1)]
     new_vector = helper.sum_of_vectors(self.H_transpose, dep_combination)
     self.H_transpose.append(new_vector)
     helper.change_rows_order(self.H_transpose)
     self.H_matrix = helper.transpose_matrix(self.H_transpose)