
Założenia są takie, że filozofowie siedzą przy wspólnym stole i każdy ma tylko jedną pałeczkę. Aby nie umrzeć z głodu muszą więc dzielić się pałeczkami. Egoiści biorą pałeczkę i czekają, aż zwolni się druga (jeśli algorytm niebyłby probabilistyczny, a wszyscy biliby źli to oczywiście każdy zostałby z jedną i by umarli z głodu). Ci dobrzy z kolei biorą pałeczkę tylko jeśli obie są wolne, a jeśli w następnym cyklu ktoś zabierze im drugą to odkładają tą, którą wzięli, żeby jej nie blokować. Symulacja nie daje wyników idealnych - bywa, że dobrzy giną, a egoiści przeżywają (w czasie pisania programu miewałem bardziej klarowne rozwiązania - byćmoże teraz czynników losowych jest za dużo), ale napewno założenia są dobre, bo podobno wykorzystuje się to przy tworzeniu wielozadaniowych systemów operacyjnych. Z drugiej stronie powinno sprawdzić się równierz w etyce. Należy tu też zaznaczyć, że ze względu na czynnik losowy trzeba uruchomić symulację kilka razy - dopiero średni wynik jest miarodajny.