def get_vkdic_from_cfg(cfgfile): sdic = get_sdic(cfgfile) vkdic = make_vkdic(sdic['kdic'], sdic['nov']) return vkdic, sdic['nov']
def initial_bitdic(conf_filename, seed='C001'): sdic = get_sdic(conf_filename) vkdic = make_vkdic(sdic['kdic'], sdic['nov']) bitdic = BitDic(seed, seed, vkdic, sdic['nov']) return bitdic
cs = hs.intersection(ls) if len(cs) == 0: sats.append((hv, lv)) return sats class BitGroup: def __init__(self, gname, vkdic, nov): self.vkdic = vkdic self.nov = nov self.gname = gname self.rootbdic = BitDic("root", "seed", vkdic, nov) h_lower_bit = nov // 2 hbitdic = self.rootbdic.subset(nov - 1, h_lower_bit) lbitdic = self.rootbdic.subset(h_lower_bit - 1, 0) self.half0 = Half(self, lbitdic, 0) self.half1 = Half(self, hbitdic, 1) def solve(self): sats = self.half1.find_sats(self.half0) return sats if __name__ == '__main__': cfg_filename = 'cfg6-13.json' sdic = get_sdic('./configs/' + cfg_filename) vkdic = make_vkdic(sdic['kdic'], sdic['nov']) bg = BitGroup('group', vkdic, sdic['nov']) sats = bg.solve() print(f'sats: {sats}')