MathLabs

Bài 5

Có nn người ngồi thành vòng tròn. Tổng cộng có nknk đồng xu được phân phối, không nhất thiết đều. Một bước chuyển một đồng xu giữa hai người kề nhau. Hãy tìm thuật toán dùng ít bước nhất để cuối cùng mọi người có cùng số đồng xu.
Bước 1 trên 5: Mã hóa độ lệch
di=ci−k,∑i=1ndi=0d_i=c_i-k,\qquad\sum_{i=1}^nd_i=0
Phân tích chi tiết

Đánh số tuần hoàn, gọi cic_i là số xu ban đầu và đặt di=ci−kd_i=c_i-k. Vì tổng là nknk nên ∑i=1ndi=0\sum_{i=1}^nd_i=0. Đổi nhãn để d1≥0d_1\ge0.