📚 Math in Society
⇩ Download ▾

4.3 Jefferson’s Method

Thomas Jefferson proposed a different method for apportionment. After Washington vetoed Hamilton’s method, Jefferson’s method was adopted, and used in Congress from 1791 through 1842. Jefferson, of course, had political reasons for wanting his method to be used rather than Hamilton’s. Primarily, his method favors larger states, and his own home state of Virginia was the largest in the country at the time. He would also argue that it’s the ratio of people to representatives that is the critical thing, and apportionment methods should be based on that. But the paradoxes we saw also provide mathematical reasons for concluding that Hamilton’s method isn’t so good, and while Jefferson’s method might or might not be the best one to replace it, at least we should look for other possibilities.

The first steps of Jefferson’s method are the same as Hamilton’s method. He finds the same divisor and the same quota, and cuts off the decimal parts in the same way, giving a total number of representatives that is less than the required total. The difference is in how Jefferson resolves that difference. He says that since we ended up with an answer that is too small, our divisor must have been too big. He changes the divisor by making it smaller, finding new quotas with the new divisor, cutting off the decimal parts, and looking at the new total, until we find a divisor that produces the required total.

# Math in Society 4.3 -- Jefferson's Method: hunting for a modified divisor
# Jefferson always cuts the decimals off. If that gives too few seats, the divisor
# was too big -- shrink it and try again.
pops = {"Bristol": 49875, "Kent": 166158, "Newport": 82888,
        "Providence": 626667, "Washington": 126979}
SEATS = 75
TRIALS = [14034.22667, 13500, 13700]     # EDIT: add or change trial divisors

def show(divisor):
    quota = {k: v / divisor for k, v in pops.items()}
    got = {k: int(q) for k, q in quota.items()}
    handed = sum(got.values())
    verdict = ("exactly right" if handed == SEATS else
               "too FEW seats -- shrink the divisor" if handed < SEATS else
               "too MANY seats -- grow the divisor")
    print(f"trial divisor {divisor:,.5f}")
    for k in pops:
        print(f"   {k:<12}{pops[k]:>10,}{quota[k]:>11.4f}  ->{got[k]:>4}")
    print(f"   {'total':<12}{sum(pops.values()):>10,}{'':>11}  ->{handed:>4}"
          f"   {verdict}\n")
    return got

for d in TRIALS:
    show(d)

# Rather than guess, hand out seats one at a time: the next seat always goes to
# whoever has the largest population-per-(seats-already-held + 1).
got = {k: 0 for k in pops}
for _ in range(SEATS):
    k = max(pops, key=lambda k: (pops[k] / (got[k] + 1), pops[k]))
    got[k] += 1
low = max(pops[k] / (got[k] + 1) for k in pops)
high = min(pops[k] / got[k] for k in pops if got[k])
print(f"Jefferson's answer: " + ", ".join(f"{k} {got[k]}" for k in pops))
print(f"ANY divisor from {low:,.2f} to {high:,.2f} produces it -- that whole")
print("interval is 'the modified divisor', which is why the book's 13,700 and your")
print("own lucky guess can both be correct.")

std = sum(pops.values()) / SEATS
broke = [k for k in pops if not (pops[k] / std - 1 < got[k] < pops[k] / std + 1)]
print("Quota rule: " + ("every county is within 1 of its quota"
                        if not broke else f"VIOLATED by {', '.join(broke)}"))
print("\nTry it: set SEATS = 30 and re-run. Jefferson rewards the largest county")
print("every time the divisor drops, so watch Providence collect the roundings.")

Notice, in comparison to Hamilton’s method, that although the results were the same, they came about in a different way, and the outcome was almost different. Providence County (the largest) almost went up to 46 representatives before Kent (which is much smaller) got to 12. Although that didn’t happen here, it can. Divisor-adjusting methods like Jefferson’s are not guaranteed to follow the quota rule!

Adapted from Math in Society by David Lippman, hosted on LibreTexts (math.libretexts.org) and licensed under CC BY-SA 3.0. Changes were made. License: CC-BY-SA-3.0.

These eBooks are a prerelease and are not yet certified conformant with WCAG 2.1 AA or ADA Title II. Every page is built against an automated accessibility gate, and the published editions will meet ADA Title II requirements when they release in late September 2026. If something is unusable, please tell us.