题上岸
考公资料分析的随身练习场。 资料分析真正的瓶颈不是不会算,是算得慢 ------ 而慢的那半秒,多半卡在「16.7% 是几分之一」「484 是几的平方」这种地方。这些只能练成反射,所以我把它做成了五组练习。
微信小程序,打开即用,无需注册。

五个功能
百化分消消乐
页面中间给一个目标值(16.7%),下面 6 个分数里挑出等于它的那个(1/6)。选错会被划掉、继续试,选对盖一枚「正」印。
一组 20 题,同组内考点不重复 。题库 30 组(1/3 ~ 1/20 加常见小数分母换算),干扰项每题现抽 ------ 同一道题基本遇不到第二次。
答完出结算,按「第几次才答对」分六档。一次答对的道数,就是这块熟练度的直接读数。

乘方消消乐
同一套玩法、同一套出题引擎,换题库:11² ~ 29² 的平方数,加上 1.2 / 1.3 / 1.4 的三次方与四次方。
两个方向随机 :一半给你 484 去找 22²,一半给你 22² 去报 484 ------ 看数据时要认得出、动笔时要报得出,这两件事得分开练。

速算练习
截位直除、估算、比大小三种题型轮流出现,每题单独计时。
和消消乐刻意不同:这里答一次就判(能试到对的话,计时就失去意义了)。答错时错的标朱砂划掉、对的标绿,一眼看出差在哪。切到后台计时会暂停 ------ 接个电话不会算成你用了 30 秒。

常用公式记忆
10 张可翻转的记忆卡,正面只有公式名,点一下翻面看公式,附口诀与秒杀技巧:
scss
比重差 / 比值差
前期部分 ÷ 本期整体 × (R部 − R整)
= A/B × (R部 − R整) ÷ (1 + R部)
口诀 · 去部今整
秒杀:只看 |R部 − R整|,选比它小的选项
各张互不影响,可以同时翻开好几张对着看。

错题本
拍照 → 直接在图上拖框裁掉多余的部分 → 写一句备注 → 存。一张拍不下就再加一张(材料一页、题目一页)。
想看解析再点「AI 解析」,不点就一直躺着不打扰你。列表有「详细 / 简洁」两种浏览模式。

技术上的几个取舍
零图片:整个小程序一张 UI 素材都没有。 纸纹、柔光、磨砂、双线框、朱砂印,全部由 WXSS 绘制。包里唯一一张静态图是微信分享卡的预览图,它不是 UI。
正确答案从实际计算值倒推。 速算题的答案永远先算出真值、再倒推选项,不是「我打算让它是多少」;干扰项与正确答案至少拉开 10%(估算)或 3%(比大小)。题库正确性由测试逐题验证,不靠人工抽查。
反馈语义按场景分开。 消消乐里点错是「再试一次」,所以划掉后淡化成淡墨;速算里答错就是错了,用朱砂强调。两个页面长得像,但这处差异是有意的。
错题本的裁剪框是自己写的。 微信的 wx.editImage 会打开完整编辑器、还得再点一次裁剪图标;wx.cropImage 的 cropScale 是必填的固定比例(1:1 / 3:4 / 9:16...),框不住一道题。所以在 touchstart/move/end 上手写了一个可拖拽、四角可缩放的裁剪框。
裁剪发生在本地。 图这时还没上传,到点「保存」才传 ------ 反复裁、裁完又重拍,都不会在对象存储上留下孤儿图,后端也不需要清理任务。备注也正好在这一刻最好写。
老内核对 CSS 的兼容。 页面回落到旧版 WebView 时,CSS 变量、双位置色标、transparent 的预乘 alpha 行为都和现代内核不一致。这几处按老内核的解析规则写(比如渐变收尾一律写 rgba(同色, 0) 而不是 transparent,因为后者在非预乘插值下会一路经过灰黑),保证退化的只是观感、不是可用性。
107 个单测。 小程序的渲染层在 Node 里跑不起来,但结构对不对可以静态查:路由登记、功能清单与页面的双向对应、分享出口的有无、出题引擎的每题正确性。npm test 一把跑完。
关于 AI
错题本的「AI 解析」走 DeepSeek 的视觉模型,识别题目、选项、答案与解析。有两点是刻意的:
- 识别不被当成「必须成功」的一步。 对面是模型,什么形状都可能返回 ------ 实测遇到过把选项塞进题干、options 给空的情况。所以畸形输入一律兜住、绝不抛;识别出的答案对不上题目时,不显示「采纳」入口。
- 分类会自动纠正。 模型把选择题标成判断题时,按选项标号改回来。
微信小程序搜「题上岸」,或扫上方二维码体验。