← 返回题库
中级

实现令牌桶限流算法

未完成
中级参考 代码结构已给出,请填写 ____ 处
def solve():
    from pyodide.http import open_url
    from io import StringIO
    rate_limit_config_csv = open_url(____).read()
    import pandas as pd
    from io import StringIO
    cfg = pd.read_csv(StringIO(____))
    pay_cfg = cfg[cfg['____']=='____'].iloc[____]
    CAPACITY = int(____)
    RATE = CAPACITY / float(____)
    class TokenBucket:
        def __init__(____):
            self.capacity = capacity
            self.tokens = float(____)
            self.rate = rate
            self.last_refill = ____
        def allow(____):
            elapsed = now - self.last_refill
            self.tokens = min(____)
            self.last_refill = now
            if self.tokens >= ____:
                self.tokens -= ____; return True
            return False
    bucket = TokenBucket(____)
    results = []
    now = ____
    for i in range(____):
        now += ____
        ok = bucket.allow(____)
        results.append(____)
    allowed = sum(____); denied = len(____) - allowed
    print(____)
    print(____)

示例

输入
solve()
期望输出
令牌桶(capacity=5,rate=0.083/s): allowed=7, denied=8
结果: ['A', 'A', 'A', 'A', 'A', 'D', 'A', 'D', 'D', 'D', 'D', 'D', 'D', 'A', 'D']
Python 代码 🔒 登录后使用
🔒

登录后即可练习

注册免费账号,在浏览器中直接运行 Python 代码