コード例 #1
0
ファイル: query.py プロジェクト: Hanyu-Li/SpikeDB
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
コード例 #2
0
ファイル: day_7_2020.py プロジェクト: demanick/adventofcode
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)
コード例 #3
0
ファイル: day_6_2020.py プロジェクト: demanick/adventofcode
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)
コード例 #4
0
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)
コード例 #5
0
ファイル: day_4_2020.py プロジェクト: demanick/adventofcode
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)
コード例 #6
0
ファイル: day_3_2020.py プロジェクト: demanick/adventofcode
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)
コード例 #7
0
ファイル: day_9_2020.py プロジェクト: demanick/adventofcode
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)
コード例 #8
0
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")