Oto tło tego pytania. Graliśmy z przyjaciółmi w grę, w której każdy musi dać innym ludziom prezent. Aby ustalić, kto powinien komuś dać prezent, decydujemy się na losowanie. Problem w tym, że ktoś może dać sobie prezenty, co nie jest śmieszne. Widać, że oczekiwana liczba takich nieszczęśliwych osób wynosi 1, więc zdarza się to dość często.
W tym celu rozwiązywanie problemów wydaje się doskonale pasować. Jeśli mogę rzetelnie wygenerować porozumienie, mogę wybrać tylko jedno porozumienie i użyć go, aby zdecydować, komu dać komuś prezenty.
Generowanie losowych ustaleń można przeprowadzić metodą Las Vegas. Ale problem polega na tym, że spodziewał się tylko wielomianowego czasu działania. Doszedłem więc do problemu znalezienia i-tej drogi. Jeśli mogę losowo wybrać i w [1, D_n] i użyć jakiegoś najgorszego algorytmu czasu wielomianowego (wydajnego), aby uzyskać i-ty układ, to jest to zrobione.