def find_similar_input(collection, _result, r0, threshold=10, display=True): """ find data set within result with similar input waveform to r """ if r0.__class__ == dict: std = np.array(r0.get('input_signal')) elif r0.__class__ == str: (fnhead, fnum) = parse_fname(r0) r0_entry = collection.find_one( {'fnhead' : fnhead, 'fnum' : fnum } ) std = np.array(r0_entry.get('input_signal')) filtered_result = [] result = _result.clone() for r_candidate in result: try: comp = np.array(r_candidate.get('input_signal')) dist = compute_distance(comp, std) print dist if dist < threshold: if display == True: plot(comp) show() print r_candidate.get('fnhead'), r_candidate.get('fnum') print dist filtered_result = filtered_result + [r_candidate] except: print 'input signal not found' return filtered_result
def main(): input_str = read_input(*parse_fname(__file__)) containing, contained_by = parse_input(input_str) containers = len(find_all_containers(contained_by, "shiny gold")) print("PART 1") print("Can be contained by %i bags" % containers) print() bags_contained = find_all_contained(containing, "shiny gold") print("PART 2") print("Must contain %i bags" % bags_contained)
def main(): input_str = read_input(*parse_fname(__file__)) groups = parse_input(input_str) all_valid_questions = sum([valid_questions(grp, 1) for grp in groups]) print("PART 1") print("Valid questions: %i" % all_valid_questions) print() all_valid_questions = sum( [valid_questions(grp, len(grp)) for grp in groups]) print('PART 2') print("Valid questions: %i" % all_valid_questions)
def main(): input_str = read_input(*parse_fname(__file__)) instrs = parse_input(input_str) acc_log, call_log, _ = run_boot_code(instrs) print(call_log) print("PART 1") print("Accelerator value after 1 loop: %i" % acc_log[-1]) print() acc = clean_up_code(instrs, acc_log, call_log) print("PART 2") if acc is None: print("No solution found") else: print("Accelerator value after program ends: %i" % acc)
def main(): input_str = read_input(*parse_fname(__file__)) passports = parse_input(input_str) valid_passports = 0 for passport in passports: valid_passports += is_valid(passport, optional=['cid']) print("PART 1") print("Valid passorts: %i" % valid_passports) print() valid_passports = 0 for passport in passports: valid_passports += is_valid(passport, optional=['cid'], validate_data=True) print("PART 2") print("Valid passports: %i" % valid_passports)
def main(): input_str = read_input(*parse_fname(__file__)) grid = parse_input(input_str) toboggan_run = TobogganRun(grid) start_pos = (0, 0) slope = (3, 1) trees_hit = toboggan_run.trees_hit(start_pos, slope) print("PART 1") print("Trees hit: %i" % trees_hit) print() slopes = [(1, 1), (3, 1), (5, 1), (7, 1), (1, 2)] trees_hit = 1 for slope in slopes: trees_hit *= toboggan_run.trees_hit(start_pos, slope) print("PART 2") print("Product of trees hit: %i" % trees_hit)
def main(): input_str = read_input(*parse_fname(__file__)) code = parse_input(input_str) ee = EncodingError(code, preamble_length=25) ee.generate_sumlib_from_preamble() faulty_sum = ee.find_faulty_sum() print('PART 1') if faulty_sum is None: print('No faulty sum found') else: print('Faulty sum %i found' % faulty_sum) checksum = ee.find_contiguous_series_checksum(faulty_sum) print('PART 1') if checksum is None: print('No contiguous combo found') else: print('Contiguous combo checksum: %i' % checksum)
def main(): input_str = read_input(*parse_fname(__file__)) boarding_passes = parse_input(input_str) seat_ids = [] for bpass in boarding_passes: r_id = binary_search(128, bpass[:7]) c_id = binary_search(8, bpass[7:]) seat_id = (r_id * 8) + c_id seat_ids.append(seat_id) print("PART 1") print("Max seat ID: %i" % max(seat_ids)) print() seat_ids.sort() missing_seat_id = find_missing_seat(seat_ids, 1) print("PART 2") if missing_seat_id: print("Missing Seat ID: %i" % missing_seat_id) else: print("Missing seat not found")