Tech
[程序员] 我用 deepseek 逆向了小米运动的卡路里算法,绷不住了
起因是主播最近在减肥,每天运动量不变,卡路里却忽高忽低,觉得其中必有蹊跷。让 deepseek 帮忙逆向看了一眼,看完是真绷不住。
先说明前提:我没戴小米手环,手机放裤兜或边走边刷。手环走的是另一套算法,由手环自己算完传给手机,跟下面这些无关。
我本以为这算法至少符合运动生理学。结果核心就三条:
按分钟分档,只看步频
每分钟步数 ≤138 → 0.04 卡/步 139–277 → 0.06 卡/步 ≥278 → 0.10 卡/步
注意最后那档:278 步/分相当于 4.6 步/秒,那是苏炳添、陈妤颉这种选手的顶速。而且它要的是整整一分钟都这个频率——人类压根做不到。所以实际只有前两档在用。
距离 = 步数 × 0.6 ,而且每次更新都取整
不是最后乘一次,是每次同步来 n 步,就算 int(n × 0.6) 再累加。n=13 时 7.8 → 7 ,丢 0.8 米。同步越勤,丢得越多,所以你看到的是 0.59 而不是 0.6 。
卡路里会重复累加(这是 bug )
同一分钟内,它每次更新不是把最新值同步过去,而是把这分钟的旧值再往上加一遍。
我做了...
Read the full discussion on V2EX
This article was aggregated from V2EX. Click to join the conversation.
View on V2EX