示例#1
0
def main():
    """Perform gradient descent using user-provided parameters.

    This asks the user to provide a learning rate, an initial starting value,
    and a maximum step count to avoid infinite iteration.
    """
    learning_rate = get_float_input('Input a learning rate, a=')
    initial_x = get_float_input('Input an initial value, x0=')
    step_count = get_int_input('Input the number of steps:')
    print('Now descending...')
    descend(initial_x=initial_x, step_count=step_count, step_size=learning_rate,
            callback=print_update)
示例#2
0
def parse_input(file_name):
    return common.get_int_input(file_name)
示例#3
0
def solve_2(numbers, target_sum):
    half = target_sum / 2
    entry1 = next(
        (n for n in numbers if (target_sum - n) in numbers and n != half),
        None)
    entry2 = (target_sum - entry1) if entry1 is not None else None
    return entry1, entry2


def solve_3(numbers, target_sum):
    all_numbers = numbers
    numbers = numbers.copy()
    for entry1 in all_numbers:
        numbers.remove(entry1)
        entry2, entry3 = solve_2(numbers, target_sum - entry1)
        if None not in (entry2, entry3):
            return entry1, entry2, entry3
        numbers.add(entry1)
    return None, None, None


file_name = '01.txt'
target_sum = 2020
number_list = common.get_int_input(file_name)
numbers = set(number_list)
if len(number_list) > len(numbers):
    raise Exception("Current implementation can not handle duplicates")
entry1, entry2, entry3 = solve_3(numbers, target_sum)
product = entry1 * entry2 * entry3
print(product)