Algorithm for washing dishes

672 Views Asked by At

I am a math student and I would like to have your opinion about a problem I had in my life with my friends.

We are a group of 7 friends, and we often eat together during the weekends. During the week we eat in different groups: often i have lunch with two of my friends and the others have lunch at the bar or something like that. My question is:

What is the best algorithm to decide who should wash dishes?

My guess is the following: everyone has a score, all scores are $0$ at the beginning. Everytime we eat together, the one who has the lowest score should wash the dishes (if more than one have the same score, then the choice would be random between them). When you wash dishes, your score will get a $+n$, where $n$ is the number of people who ate during that meal; when you get a meal, your score gets a $-1$.

I think this is a good aalgorithm, but there are some practical problems: when there are guests, what should the changes in the scores be? And there is another thing: washing dishes for a 9-people meal is easier than washing dishes for a 3-people meal for 3 times, because the pots are (more or less) the same; could you suggest some normalization for these cases?

Thank you in advance.

1

There are 1 best solutions below

0
On BEST ANSWER

Your basic algorithm seems fair enough.

For guests, I would say the 'host' has to 'pay' the price, e.g. If I have two guests during some dinner, I get -2 in my score.

As far as washing 3 times for 3 people goes vs 1 time for 9 people: I wouldn't get bogged down into details here ... since the person who has to wash dishes gets decided by whatever scores people happen to have at the moment, it is near impossible for someone to try and 'plan' doing dishes for bigger groups of people; in the end, it is likely that everyone ends up doing dishes for both small and large groups, and in similar amounts, i.e. that it all becomes a 'wash'! ... forgive the pun ... but it had to be made :)