def get_wolfram_rule(rule_no):
    """
    Return a dictionary with the cell => next_state correspondences
    for a rule number for a Wolfram CA.
    """
    cell_types = [
        (1, 1, 1),
        (1, 1, 0),
        (1, 0, 1),
        (1, 0, 0),
        (0, 1, 1),
        (0, 1, 0),
        (0, 0, 1),
        (0, 0, 0)
    ]
    rule_bin = str(bin(rule_no))
    rule_substr = rule_bin[2::]
    padding = "0" * (8 - len(rule_substr))
    rule_string = padding + rule_substr
    rule_seq = [int(num) for num in rule_string]
    rule_corresp = dict(zip(cell_types, rule_seq))
    return rule_corresp