2011-09-22 25 views
7

Tôi đang tìm cách tạo hệ thống xếp hạng cho người dùng trên trang web trò chơi.Tỷ lệ phần trăm giành chiến thắng theo số lượng trò chơi đã chơi

Hệ thống phải dựa trên tỷ lệ phần trăm thắng có trọng số với phần tử có trọng số là số lượng trò chơi được chơi.

Ví dụ:

55 trận thắng và 2 thua lỗ = 96% chiến thắng tỷ lệ

1 chiến thắng và 0 lỗ = 100% chiến thắng tỷ lệ

Kỷ lục đầu tiên nên xếp hạng cao hơn bởi vì họ có một cao hơn số lần thắng. Tôi chắc chắn rằng toán học là siêu đơn giản, tôi chỉ có thể không quấn quanh đầu của tôi. Có ai giúp được không?

Trả lời

4

ELO là kỹ lưỡng hơn bởi vì nó coi sức mạnh đối thủ khi có bàn thắng một chiến thắng hoặc thua lỗ, nhưng nếu đối thủ được kết hợp ngẫu nhiên một cách tiếp cận hiệu quả đơn giản và rất là:

(Thắng + liên tục * Trung bình Win% của tất cả người chơi)/(Thắng + Thua + liên tục)

vì vậy với 0 trò chơi công thức là trung bình cho tất cả người chơi, khi bạn tăng số lượng trò chơi đã chơi công thức hội tụ trên bản ghi thực. Hằng số xác định mức độ nhanh chóng của việc này và bạn có thể thoát khỏi việc chọn thứ gì đó từ 5 đến 20.

-1

Vâng, đó là "siêu đơn giản":

Percentage = Wins * 100.0/(Wins + Losses) 

Để tròn đến một số nguyên bạn thường sử dụng round hoặc Math.round (nhưng bạn không nói rõ một ngôn ngữ lập trình).

Giá trị có thể được trọng vào số lượng chiến thắng, bằng cách sử dụng tỷ lệ nhất định:

Rank = Wins * Wins/(Wins + Losses) 

Nhưng có những hệ thống khác mà hiểu được vấn đề tốt hơn, như Elo (xem nhận xét của tôi).

+0

Xin cảm ơn câu trả lời. Tôi nghĩ rằng đó là công thức cơ bản cho tỷ lệ phần trăm thắng, nhưng nó không tính đến yếu tố trọng số. 1 * 100/1 = 100 và do đó cao hơn bản ghi đầu tiên.Có lẽ đơn vị xếp hạng cuối cùng của tôi không phải là một tỷ lệ phần trăm cho điều này, nhưng một số nguyên mà tôi đưa ra thông qua một số quá trình? –

+0

Vâng, những gì có thể được coi là một trọng lượng? Số lượng trò chơi đã chơi sẽ không được kể từ khi điều đó đã được phản ánh trong tỷ lệ thắng-thua trong câu trả lời của tôi. Tôi sẽ nói rằng một trọng lượng tốt hơn sẽ là mức độ kỹ năng của đối thủ mà người chơi đã chơi (ví dụ: tỷ lệ thắng-thua). Nhưng vấn đề này đã được giải quyết, ví dụ, trong hệ thống xếp hạng Elo (thực hiện tìm kiếm trên Web cho thuật ngữ đó). –

+0

Chắc chắn, tôi sẽ kiểm tra Elo. Tôi cũng đã xem RPI và BCS làm ví dụ thể thao. Tôi đoán tôi sẽ làm một số suy nghĩ nhiều hơn về cách thức và lý do tại sao tôi muốn làm điều này và lấy lại cho bạn. Cảm ơn đã giúp đỡ. –

0

Một khả năng khác sẽ là câu trả lời của tôi cho How should I order these “helpful” scores?. Về cơ bản, sử dụng số lượng chiến thắng để xác định phạm vi khả năng có khả năng xảy ra cho xác suất mà người chơi giành được một trò chơi, sau đó lấy điểm thấp hơn. Điều này làm cho 55-2 đánh bại 1-0 cho bất kỳ sự lựa chọn hợp lý của mức độ tin cậy. (Thiếu lý do để làm khác, tôi khuyên bạn nên đặt điều đó thành 50% - xem bài đăng để biết chi tiết, thực sự rất đơn giản.)

Là một kỹ thuật nhỏ sang một bên: Tôi đã thấy một số đề xuất sử dụng khoảng Wald thay vì Agresti-Coull. Thực tế, họ đưa ra kết quả tương tự cho đầu vào lớn. Nhưng có những lý do tốt để thích Agresti-Coull nếu số lượng trò chơi có thể nhỏ. (Nhân tiện, tôi nghĩ ra ý tưởng này trên chính mình — mặc dù chắc chắn tôi không phải là người đầu tiên — và chỉ sau đó thấy rằng nó có phần tiêu chuẩn.)

0

Làm thế nào về điểm = (điểm cho mỗi chiến thắng) * (số thắng) + (số điểm cho mỗi thua lỗ) * (số lỗ), trong đó điểm cho mỗi trận thắng là một số dương và số điểm cho mỗi trận thua là một số âm, được chọn để làm việc tốt cho bạn ứng dụng.

Các vấn đề liên quan