Monday, February 16, 2026

How Fair Is Fair? A Mathematical Look at Sharing Workload

MathJax example

- Yathirajsharma M. V.

Introduction: When Mathematics Meets Real Life Mathematics is often introduced to students as a collection of formulas, theorems, and techniques. However, its real strength lies elsewhere — in the way it trains us to think clearly, define problems precisely, and compare different solutions objectively.

This article grew out of a very ordinary, non-mathematical situation: fairly distributing translation work among a group of people. There was no formula given, no textbook method suggested. Instead, there was a practical concern — how do we share work so that nobody feels overloaded?

What makes this situation mathematically interesting is not the final answer, but the journey:

  • How do we convert a vague idea of “fairness” into a precise quantity?
  • How do we systematically explore all possible solutions?
  • When brute force fails, how do we think more intelligently?

These questions reflect the true spirit of mathematics. In what follows, we will see how a real-world problem naturally leads us to ideas from set theory, combinatorics, algorithms, and computational thinking.


Good mathematics is not about doing more work, but about knowing where not to work.

While discussing with a friend, who happens to be an editor of a mathematics magazine, I came across an interesting and very practical problem. The magazine is first published in English and later translated into Kannada and Hindi. My friend was responsible for coordinating the English-to-Kannada translation.

Each issue (published once every three months) typically contained about 10–12 articles. A team of freelance translators handled the translation work, and payment was made based on the number of words translated. Naturally, my friend wanted to distribute the articles among translators so that everyone received nearly the same workload (that is, nearly the same number of words).

For example, suppose there are four articles with word counts:

\(2834, 3647, 667, 3587\)

and three translators. One reasonable distribution could be:

  • Translator 1: \(2834 + 667 = 3501\) words
  • Translator 2: \(3647\) words
  • Translator 3: \(3587\) words

The question my friend faced was: how do we decide such a distribution systematically and fairly?

He explained that he had automated this process by computing the standard deviation of word counts and choosing a distribution that kept it below a certain threshold. This naturally led me to wonder: what if we try to solve this problem by checking all possible ways of distributing the articles?

Very quickly, it became clear that although this approach is conceptually simple, the number of possibilities grows rapidly as the number of articles increases. Before counting these possibilities, it is important to clearly define what we mean by a “fair” distribution.

Defining Variation

Definition. Let \(x_1, x_2, \dots, x_n\) be n numbers. The variation among them is defined as:

\(var[x_1, \dots, x_n] = \max\{x_1, \dots, x_n\} - \min\{x_1, \dots, x_n\}\)

A smaller variation means a more balanced workload.

Example. For the word counts \(\{3501, 3647, 3587\}\),

\(var = 3647 - 3501 = 146\)

Formulating the Problem Precisely

Now let us describe the problem mathematically. In the example above, four articles are to be shared among three translators. This means we want to divide the set:

\(S = \{2834, 3647, 667, 3587\}\)

into three parts.

A partition of a set \(S\) is a collection of subsets whose union is \(S\), and which do not overlap with each other.

With this language, we can state the problem precisely:

Problem. Given numbers \(x_1, x_2, \dots, x_n\), partition them into \(k\) subsets \(A_1, A_2, …, A_k\) such that:

\(A_1 \cup A_2 \cup \dots \cup A_k = \{x_1, \dots, x_n\}\)
\(A_i \cap A_j = \emptyset\) for \(i \neq j\)

and the variation

\(var[ sum(A_1), \dots, sum(A_k) ]\)

is as small as possible.


How Many Partitions Are There?

Suppose \(n\) articles are to be shared among \(k\) people. If the sizes of the groups are \(r_1, r_2, \dots, r_k\) with

\(r_1 + r_2 + \dot + r_k = n\),

then the number of ways of forming partitions with parts of the sizes \(r_1, r_2, \dots, r_k\) is

\({}^nC_{r_1} \times {}^{n-r_1}C_{r_2} \times \dots \times {}^{n-r_1-\dots-r_{k-1}}C_{r_k}\)

How did we calculate this? Simple. To find the number of partitions with the sizes of parts \(r_1, r_2, \dots, r_k\), among those \(n\) elements of \(S\), the number of ways we choose \(r_1\) elements is \[{}^nC_{r_1}.\] Among the remaining \(n-r_1\), we must choose \(r_2\) elements. The possible ways are \({}^{n-r_1}C_{r_2}\). If we proceed in the same fashion, the total number of possible partitions are simply the product of such computed numbers, which is the above formula.

Example. Let \(n = 10\) and \(k = 3\).

The possible size patterns for partitioning 10 into 3 parts are:

\([1,2,7], [1,3,6], [1,4,5], [1,1,8], [2,3,5], [2,4,4], [2,2,6], [3,3,4]\)

Computing all cases gives a total of 13,680 possible partitions. Partition wise number of combinations is as given as follows:

  • \([1,2,7]:\) Here \(r_1 =1\), \(r_2 = 2\) and \(r_3 =7\). Applying the formula, we see that the possible number of partitions of \(S\) into three parts of sizes \(1, 2, 7\) is: \[{}^{10}C_1\times {}^{10-1}C_2 \times {}^{10-1-2}C_{7} = {}^{10}C_1\times {}^{10}C_2 \times {}^{10}C_7 = 10\times 36 \times 1 = 360\]
  • \([1,3,6] - 840\)
  • \([1,4,5] - 1260\)
  • \([1,1,8] - 90\)
  • \([2,3,5] - 2520 \)
  • \([2,4,4] - 3150 \)
  • \([2,2,6] - 1260\)
  • \([3,3,4] - 4200\)

For each of these, we must compute sums and variations. Clearly, this is impractical to do by hand.

Exercise. How many combinations may arise for partitions into 4 parts of the set of 10 elements? That is, how many pssobilities for the case of \(n=10\) and \(k=4\)? Give the brek-up partition wise. Write your answers in the comment box.


From Mathematics to Algorithms

At this point, the computer becomes our best friend. Using Sage, I implemented a brute-force solution. For \(n = 10\) and \(k = 3\), the program completed in just a couple of seconds. See the code here.

However, as \(n\) and \(k\) increased, the computation time grew rapidly:

  • \(n = 12, k = 5\) took nearly two minutes
  • \(n = 14, k = 5\) took more than five minutes

To speed things up, I introduced a simple but powerful idea known as pruning. If during a computation we already see that the variation would exceed the best value found so far, there is no point in continuing further along that branch. See the iprovised code in the same page.

For example, if the current best variation is 100, and during computation we encounter partial sums 9000 and 1000, then the variation is already at least 8000. We can immediately stop exploring that branch.

With pruning:

  • \(n = 12, k = 5\) reduced from 40 seconds to about 5 seconds
  • \(n = 14, k = 5\) reduced from over 5 minutes to under 1 minute

Interestingly, for \(n = 14\) and \(k = 6\), computation was faster than for \(n = 14\) and \(k = 5\). This raises an intriguing question about how the number of parts influences computational complexity.


Conclusion

This article is not really about translators, word counts, or even partitions. It is about learning how to think.

  • Real-world problems are often vague; mathematics begins by making them precise.
  • A simple definition can sometimes be more powerful than a sophisticated one.
  • It is important to note that choosing a measure of fairness is itself a modelling decision. Different choices lead to different optimisation problems. Mathematics begins no when we compute, but when we decide what we wish to optimise.
  • Not all correct methods are practical — efficiency matters.
  • When brute force fails, intelligent pruning can save enormous effort.

As students, cultivating this habit of thoughtful problem-solving is far more valuable than mastering any single formula or algorithm. If you find any alternative way tackling this problem, please share with us at dep.math.svc@gmail.com

Acknowledgement: The author thanks his friend Madhukara who currently works at Azim Premji Univeristy for discussing the problem with him.


Yathirajsharma M. V. currently works as an Assistant Professor of Mathematics at Sarada Vilas College.


If you find any mistakes or errors, please send the same to dep.math.svc@gmail.com

No comments:

Post a Comment