Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You can divide the pizza fairly with N players as follows:

   * The cutter proposes to cut a small slice (say 5 degrees) and asks who wants it
      
   * If nobody does, he proposes to cut a slightly larger slice and asks who 
     wants it?  The proposed slice gets larger and larger until somebody 
     calls out 'yes'
     
   * Once somebody says they want the slice, it is 
     actually cut and given to them.
     
   * The game continues until all the pizza is divided up
This balances peoples 'greediness' against their desire to get a slice. You can keep waiting and waiting for the proposed slice to get larger, but the risk is somebody else will call for it first. If you keep waiting for a large slice, the pizza will eventually be gone and you will have none. It forces everybody to choose the smallest size they would be satisfied with, until all the pizza is gone.


If there were two players, and A was cutting, B would just wait until the "cut" was the whole pie, then take it.

If there were three players, B and C would both call at half, cutting out player A.

You can't solve this by letting the cutter also call out, because you can't trust him to both cut and choose at the same time.


> You can't solve this by letting the cutter also call out, because you can't trust him to both cut and choose at the same time.

You can with certain types of pizza cutters. With this sort (http://www.amazon.com/RSVP-World-Class-Pizza-Cutter/dp/B0000...) for example you can propose a cut by aligning the cutter before actually performing the cut.

If you can't trust the cutter to cut the slice he said he was going to cut for himself, after demonstrating the proposed cut, then you can't trust the cutter to not simply devour the entire pizza right there in front of everybody.


"then you can't trust the cutter to not simply devour the entire pizza right there in front of everybody"

The guy does have a knife after all ... what are the others going to do to stop him!


If A is also allowed to call, it solves the problem of B and C splitting the pizza.


How does that work if multiple people call out "Yes" at the same time?


Well, this system is somewhat optimised for practicality. A truly 'fair' system would allow people to submit blind bids, for how wide a slice they would like, with the smallest bid taking the slice. Eg:

   * Everybody writes down how much pizza they would like on a folded piece of paper.
     You put down 15 degrees, I put down 25 degrees, etc.  

   * The papers are opened and the person who bid the lowest gets their 
     requested slice

   * Repeat until all the pizza is gone.
Essentially you are running a blind auction to split up a limited resource. While being a fairer adaption of my original solution, it does turn out somewhat more unwieldy in practise :-)


Use a system where you say "yes" by slapping your hand down onto a beverage coaster. Whoever's hand is on the bottom of the hand stack gets it.


Heh, but then you're introducing a bunch of variables that affect fairness, ie. arm length, reaction time (muscle twitch speed), proximity/position, etc.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: