Jan Dvorak chỉ ra hàm số mũ trong một bình luận. Tôi sẽ giải thích nó ở đây.
Lưu ý rằng các phép toán theo cấp số nhân (và trig) đắt hơn đáng kể so với các phép toán căn bậc hai, bản thân chúng kém hơn toán học cơ bản, vì vậy bạn có thể tốt hơn với cách tiếp cận của Adam nếu bạn thực hiện các phép tính này nhiều lần trong một giây . Nếu bạn chỉ tính toán các giá trị khi cấp độ người chơi, thay đổi thiết bị, v.v., tốc độ không quan trọng, vì vậy hãy sử dụng bất cứ thứ gì mang lại cho bạn đường cong tốt nhất.
Hàm số mũ là một số cơ sở, B , với một số lũy thừa , x , y=B^x
. Các nhà toán học thường sử dụng cơ sở của e , (~ = 2.718), nhưng không có lý do gì bạn không thể sử dụng 2 hoặc 10 nếu bạn thích.
y=e^x
trông như thế này:
Lưu ý rằng bên trái đang di chuyển không đối xứng đến 0. Vì vậy, chúng ta có thể lật trục x bằng cách thực hiện y=e^(
-x)
nhưng nó vẫn giảm dần từ 1 đến 0 và chúng tôi muốn nó tăng dần. Vì vậy, chúng ta có thể lật nó qua trục y với y=
-e^(-x)
. Bây giờ, nó tăng dần từ -1 đến 0. Chúng ta có thể thêm 1 để nhận y=
1- e^(-x)
và tăng dần từ 0 đến 1.
Từ đây, chỉ là vấn đề nhân rộng nó theo chiều dọc và chiều ngang. Chúng ta có thể nhân toàn bộ mọi thứ với một giá trị nào đó, hãy gọi nó là A , đặt giới hạn tiệm cận. Sau đó, chúng ta có thể nhân x với giá trị thay đổi tỷ lệ, k , để điều chỉnh mức độ đóng của nó trong giới hạn.
Điều này cho chúng ta một phương trình cuối cùng của y=A*(1 - e^(-k*x))
. Sử dụng các giá trị của k=0.012
và A=0.5
, chúng ta có thể đặt giới hạn thành 50% và để nó gần với giới hạn đó x=400
.
Bây giờ, bạn có thể thực hiện một vài điều chỉnh cho việc này. Một điều chỉnh tôi đã thực hiện là thay đổi thành A=0.5041
tỷ lệ phần trăm với 2 số thập phân (như 32,23%), y (399) = 49,99% và y (400) = 50,00%. Từ y (347) trở đi, có một số nơi cần hai điểm để thay đổi 0,01%. Nhưng điểm cuối cùng có thể đó vẫn mang lại lợi ích hữu hình (hầu như không) và mang lại cho nó thậm chí 50%.
Thay phiên, chúng tôi có thể điều chỉnh k
giá trị để có hiệu ứng tương tự. Tại k=0.02305
, giá trị làm tròn đến 49,99% tại y=399
và 50,00% tại y=400
. Tuy nhiên, điều này có một vấn đề là đồ thị ở cuối rất nông - phải mất 48 điểm để có được một phần trăm cuối cùng (từ y(352)=49.99%
đến y(399)=49.99%
đến y(400)=50.00%
) và cơ hội phê bình 1% cuối cùng mất tới 230 điểm (từ y(170)=49.01%
đến y(400)=50.00%
) mà có lẽ là một chút quá giảm về lợi nhuận.
Nếu bạn muốn, bạn có thể điều chỉnh cả A và k để nó giảm đến giới hạn cao hơn một chút với tốc độ chậm hơn, để đưa ra một cái gì đó giữa phân rã tuyến tính và hàm mũ. Làm y=0.6*(1-e^(-0.00447*x))
, bạn kết thúc với điều này:
Lưu ý rằng đường cong tiếp tục vượt quá 50%, nhưng vì có giới hạn cứng là 400 xếp hạng, người chơi không thể vượt qua điểm đó (và nếu họ có thể vượt qua nó, vẫn còn giới hạn cứng là 60%. Với phương trình này, bạn có thể sử dụng 1 vị trí thập phân và vẫn thấy mức tăng cứ sau 2 đến 3 điểm, với một đánh dấu cuối cùng từ y(399)=49.9%
đến y(400)=50.0%
.
Về mặt toán học, các phương trình trước đó có vẻ tốt hơn, vì chúng thực sự đạt gần 50%, nhưng cá nhân tôi nghĩ rằng mức tăng 0,1% mỗi điểm đôi cảm thấy tốt hơn mức tăng 0,01%. Ngay cả với A=0.05041
và k=0.012
, phải mất 102 điểm để đi từ y(298)=49.00%
đến y(400)=50.00%
. 25% số điểm của bạn dành cho 2% số điểm của bạn có lẽ là quá giảm. Phương trình 60% chỉ mất 20 điểm cho phần trăm cuối cùng (vẫn cao hơn 5 lần so với 4 điểm cần thiết cho phần trăm đầu tiên).
Với một vài phương trình cuối cùng, tôi chỉ cần cắm các phương trình vào bảng tính và điều chỉnh các giá trị bằng tay cho đến khi chúng trông ổn. Bạn sẽ phải làm một cái gì đó tương tự nếu bạn muốn có một nắp khác.