Inilah latar belakang untuk pertanyaan ini. Teman-teman dan saya sedang bermain permainan di mana semua orang perlu memberi orang lain hadiah. Untuk menentukan siapa yang harus memberikan hadiah kepada siapa, kami memutuskan untuk menggambar banyak. Tapi masalahnya adalah, seseorang mungkin akhirnya memberikan hadiah sendiri, yang tidak lucu. Anda dapat melihat bahwa jumlah yang diharapkan dari orang yang tidak beruntung tersebut adalah 1, jadi ini cukup sering terjadi.
Untuk tujuan ini, dearrangement tampaknya sangat cocok. Jika saya dapat dengan adil menghasilkan suatu perjanjian sayang, maka saya dapat memilih satu perjanjian sayang dan menggunakannya untuk memutuskan siapa yang memberikan hadiah kepada siapa.
Generasi sayang acak dapat dilakukan dengan metode Las Vegas. Tetapi masalahnya adalah, hanya diharapkan waktu berjalan polinomial. Jadi saya sampai pada masalah ini untuk menemukan kesesuaian saya. Jika saya dapat secara acak memilih i di [1, D_n], dan menggunakan beberapa algoritma waktu polinomial waktu (efisien) terburuk untuk mendapatkan persetujuan kedua, maka hal itu dilakukan.