Ecco lo sfondo di questa domanda. Amici e io stavamo giocando a un gioco in cui tutti hanno bisogno di fare un regalo ad altre persone. Al fine di determinare chi dovrebbe fare un regalo a chi, decidiamo di disegnare un sacco. Ma il problema è che qualcuno potrebbe finire per fare regali, il che non è divertente. Puoi vedere che il numero previsto di tali sfortunati è 1, quindi questo accade abbastanza frequentemente.
A tal fine, il caro-accordo sembra adattarsi perfettamente. Se riesco a generare in modo equo un accordo, allora posso solo scegliere un accordo e usarlo per decidere chi dare chi regali.
La generazione casuale di riarrangiamento potrebbe essere fatta con il metodo di Las Vegas. Ma il problema è che si è aspettato solo un tempo di esecuzione polinomiale. Quindi sono arrivato a questo problema di trovare il mio accordo. Se riesco a scegliere casualmente un i in [1, D_n] e utilizzare l'algoritmo del tempo polinomiale (efficiente) nel peggiore dei casi per ottenere l'i-esimo accostamento, allora è fatto.