You are now the lucky franchise owner of 'SpeedDating Inc'.
We are the number one organiser of speed-dating events in WhereverYouAre.

We would love for you to start organizing new events in your town, we think it certainly has potential.

And with the advent of pride month, we are doing a 'rainbow special'.

Normally, you would organise a heterosexual speed-dating evening as follows:

  1. Provide a numbered placeholder to each table.
  2. Ask all the ladies to be seated at their table
  3. Every turn, ask the men to go to the table that is one higher than their current number (except for whoever is sitting at the highest numbered table, they will move to table 1)

This system guarantees that all men will see all the women. And above all, it's very easy to explain. After all, these men will be here all evening, drinking some beers in between. You do not want complicated 'move to' rules.

Now, for rainbow events we've hit a bit of a snag.

If you use the same system as for the heterosexual people, half the men (for instance those doing the moving around) will never see half the men.

Your job is to figure out an easy to explain system, that will enable same-sex speed-dating.


Here is a simple answer for an odd number of people $n$. Obviously, on each round one person will have to sit out the round.

Label the two seats at the $k$th table with the numbers $k$ and $n+1-k$. The seat labeled $\frac{n+1}{2}$ sits on its own at the last table.
Between each round, everybody moves to the next numbered seat, and the person on seat $n$ moves to seat $1$.
The differences between the seat numbers at the tables are all distinct, and when you include a plus or minus sign they represent all possible values modulo $n$ , so there will be no repeats.

If $n$ is even, place one person on an extra seat at the last table and apply the above method on the remaining $n-1$ people. That person stays seated, and automatically pairs up with whoever would otherwise have to sit out the round.
(Thanks to hexomino for this part)

Here is a picture for the $n=8$ case:

enter image description here

  • $\begingroup$ For $n$ even you can just get one person to sit at an "outside table" for the whole night. Then the person who would have to sit out in the $n-1$ case just sits at the "outside table" instead. $\endgroup$
    – hexomino
    Jul 15 '20 at 14:06
  • $\begingroup$ @hexomino Doh! That makes perfect sense. Thanks. $\endgroup$ Jul 15 '20 at 14:09
  • $\begingroup$ Funnily enough, I've thought about this question in a completely different context before - organising a fixture list in a sports league - and I find your strategy is a great one to go for. +1 $\endgroup$
    – hexomino
    Jul 15 '20 at 14:09

To extend Jaap's answer for an even number of people:

Arrange all the people on the two sides of a long table, which you can simulate with several tables side-by-side for adequate physical distancing. (Why do we call it social distancing, by the way?) Everyone is now dating the person opposite them.

To prepare for the other rounds,

Choose one person sitting at one end of the table. That person never moves.

Then, after every round,

everyone else moves one chair to the left. Like so: enter image description here

This should be easy enough to implement.

To see that this works, we first check the pairings for the person starting in chair P. That seems to work trivially. For the person in seat 1, the pairings will be 10-8-6-4-2-11-9-7-5-3-P, which is what's desired. Finally, since everyone else sits at seat 1 at some point, they'll have the same pairings, only time-shifted and re-labeled.

(Disclaimer: this is not my own invention, it's how go players pair round-robin blitz tournaments.)


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.