中级
实现下行控制指令发送限流
未完成
中级参考
代码结构已给出,请填写 ____ 处
def solve():
from pyodide.http import open_url
from io import StringIO
import pandas as pd
logs_csv = open_url(____).read()
logs = pd.read_csv(StringIO(____))
MAX_CMDS_PER_MIN = ____
cmd_history = {}
def can_send_cmd(____):
history = cmd_history.get(____)
window_start = now - ____
history = [t for t in history if t > window_start]
if len(____) >= MAX_CMDS_PER_MIN:
cmd_history[device_id] = history
return False, len(____)
history.append(____)
cmd_history[device_id] = history
return True, len(____)
test_cmds = [(____),(____),(____),
(____),(____),(____),
(____),(____)]
for did, ts in test_cmds:
ok, count = can_send_cmd(____)
print(did + "____" + str(____) + "____" + ("____" + str(____) + "____" if ok else "____" + str(____) + "____"))
示例
输入
solve()
期望输出
RPI-001 ts=1748736000.0: SEND(count=1) RPI-001 ts=1748736010.0: SEND(count=2) RPI-001 ts=1748736020.0: SEND(count=3) RPI-001 ts=1748736030.0: SEND(count=4) RPI-001 ts=1748736040.0: SEND(count=5) RPI-001 ts=1748736050.0: RATE_LIMITED(count=5) ESP-001 ts=1748736000.0: SEND(count=1) ESP-001 ts=1748736001.0: SEND(count=2)
👑
升级 VIP
解锁全部题目,畅通无阻地学习
- ✓ 解锁全部训练包所有题目
- ✓ 查看完整参考代码和提示
- ✓ 浏览器内直接运行 Python 代码
- ✓ 自动批改 + 进度追踪
30天
¥18
1年
¥99
2年
¥158
3年
¥199