Skip to content

Commit 9a8939b

Browse files
committed
πŸ“š docs[skip ci]: Update readme to include FFT implementation.
1 parent f889c23 commit 9a8939b

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

β€ŽREADME.md

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,24 @@
11

22
# Introduction
33

4-
This is a `Leetcode` weekly and biweekly contest rating predictor. The APP is available online at [πŸ”— lccn.lbao.site](https://lccn.lbao.site/)
4+
This is a LeetCode weekly and biweekly contest rating predictor. The APP is available online at [πŸ”— lccn.lbao.site](https://lccn.lbao.site/)
55

6-
Hopefully, you can get the predicted result within 15-30 minutes after the contest has finished.
6+
Hopefully, you can get the predicted result within **15-30 minutes** after the contest has finished.
77

88
## Features
9+
910
* ⚑️ Fast
10-
> 1. The core prediction algorithm is accelerated by a JIT compiler([Numba](https://numba.pydata.org/)) which costs around 20 seconds on a two-cores *Intel(R) Xeon(R) Platinum 8255C CPU* (@ 2.50GHz).
11-
> 2. User's latest rating was **cached** several times before predicting which can save a lot of time fetching data.
11+
* The core Elo rating algorithm is significantly enhanced by a **Just-In-Time (JIT) compiler** through [Numba](https://numba.pydata.org), reducing execution time to approximately 20 seconds on a dual-core *Intel(R) Xeon(R) Platinum 8255C CPU* (@ 2.50GHz).
12+
* In addition to the JIT implementation, this project incorporates a [Fast Fourier Transform (FFT) implementation](https://github.com/baoliay2008/lccn_predictor/pull/43). The Elo rating system employed by LeetCode benefits significantly from the FFT algorithm, achieving speedups ranging from **65 to 1,000 times** for individual contest predictions. The most efficient FFT implementation (`EXPAND_SIZE=1`) completes predictions in under **0.25 seconds**, maintaining an impressively low Mean Squared Error (MSE) of approximately 0.027.
13+
* **Caching** the user's latest rating before initiating the prediction process leads to a substantial reduction in the time required for data retrieval.
1214
* 🎯 Accurate
13-
> 1. If there were no massive rejudges(say, everyone's global ranking stays unchanged), the rating difference should be negligible.
14-
> 2. Please note that a normal case is that there would be some misconduct detection, so your global ranking will be slightly higher even if your submissions are not rejudged, which results in a slightly higher rating :)
15+
* If there were no significant rejudges (assuming everyone's global ranking remains unchanged), it is ensured that the prediction error for rating deltas for **EACH** participant is within the precision limit of 0.05. As a result, the rating difference should be negligible.
16+
* Please note that a normal case is that there would be some misconduct detection, so your global ranking will be slightly higher even if your submissions are not rejudged, which results in a slightly higher rating :)
1517
* πŸ“± Responsive web page
16-
> Tested on phones and tablets.
18+
* Tested on phones and tablets.
1719

1820
## More Information
21+
1922
* [πŸ”— Chinese introduction on leetcode.cn](https://leetcode.cn/circle/discuss/2Ibimx/)
2023
* [πŸ”— refined-leetcode](https://github.com/XYShaoKang/refined-leetcode): A Chrome extension for leetcode.**cn**, created by [@XYShaoKang](https://github.com/XYShaoKang)
2124

@@ -25,6 +28,8 @@ Hopefully, you can get the predicted result within 15-30 minutes after the conte
2528

2629
* [πŸ”— English official illustration on leetcode.com](https://leetcode.com/discuss/general-discussion/468851/New-Contest-Rating-Algorithm-(Coming-Soon))
2730
* [πŸ”— Chinese official illustration on leetcode.cn](https://leetcode.cn/circle/article/neTUV4/)
31+
* πŸ”— Detailed post about FFT acceleration
32+
- ❀️ Special thanks to [@tiger2005](https://github.com/tiger2005) for proposing this idea in [issue #8](https://github.com/baoliay2008/lccn_predictor/issues/8)
2833

2934
## Database
3035

0 commit comments

Comments
Β (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy