Programmer tries to explain binary search to the police

The Picard Maneuver@startrek.website to Programmer Humor@programming.dev – 2488 points –
409

You are viewing a single comment

Thats 4 uses of the seesaw. It has to be 3.

That three dude

Im sorry when i read weigh two of them i counted it as two separate weighings of two sets of groups. My bad.

What about the 4th group? There are 12 people

Well I meant to write 3 groups of four. Same general thought just adjust the logic somewhat

I've had a look into it, and it doesn't work if you try to do it mathmatically. You always need more than 3 gos on the seesaw.

There is a solution in the replies to my original comment that is the actual solution, and it works every time and is much simpler than any grouping method.

It involves assigning a letter to each person and then aligning that with a grid of positions "left" or "right" or "none" on the seesaw. Over the three rounds. So, person A is on the right all three rounds person b is on the right for 2 rounds then on the left for the 3rd round.

You end up with a list of 12 patterns that do not repeat or mirror any other pattern like "LLL" "LLR" "LRR" "LR-" etc. Then you do all three rounds and compare the position the seesaw was in with those patterns.

If the seesaw was down on the left 2 times the down on the right the third time then you look for which person had that pattern in this case it was person B. So they are the one with a different weight and they were heavier.

Equally, if the opposite pattern occurred. It was down on the right 2 times, then down on the left for round, then that is the opposite pattern of person B and does not occur anywhere else, so it was person B, and they were lighter.

person:  A B C D E F G H I J K L

round 1: L L L L R R R R — — — -

round 2: L L R R R — — — L R L -

round 3: L R R — — L R — L L — R