Example #1
0
def dice_outcomes(num_dice, num_sides):
    result = {}
    for bottom in range(1, num_sides + 1):
        for dice_sum in range(1 * num_dice, num_sides * num_dice + 1):
            for outcome in ascending(num_dice, dice_sum, bottom, num_sides):
                curr_sum = sum(outcome)
                # if curr_sum is not in result, sets to total_perms(outcome)
                # (default 0 returned by get)
                result[curr_sum] = (result.get(curr_sum, 0) +
                                    total_perms(outcome))
    return result
Example #2
0
def main(verbose=False):
    MATCHES = []
    for bottom in range(1, 12 + 1):
        MATCHES.extend(ascending(10, 70, bottom, 12))

    add_ons = {}
    for biggest in range(1, 8):
        add_ons[biggest] = generate_addons(10, 1, biggest)

    count = 0
    for match in MATCHES:
        bottom = match[0]
        for addon in add_ons[bottom]:
            curr = addon + match
            count += total_perms(curr)
    return count