# TASK · DeepSeek 调价成本计算器

> 本文件是三个模型收到的**完全相同**的题目。除本文件外不提供任何额外提示。
> 施工过程中不会有人回答你的问题，也不会有人纠正你。请自行判断并完成。

## 你要做什么

做一个**单页网页**，让用户输入自己的 Token 用量，算出 DeepSeek **调价前 vs 调价后**的月成本对比。

## 交付形式（硬要求）

- 产出物放在你的工作目录下，**入口必须是 `index.html`**
- **纯静态**：双击 `index.html` 就能用，不需要任何构建、不需要起服务器
- **零外部依赖**：不许引用任何 CDN、外部字体、外部图片。断网必须完全可用
- 允许拆分 `style.css` / `script.js`，也允许全部内联，你自己决定

## 功能需求

### 1. 输入区

用户可输入/选择：

| 项 | 说明 | 默认值 |
|---|---|---|
| 日均总 Token 量 | 支持"亿/万"这类大数好输入 | 4 亿 |
| 缓存命中率 | 0–100% | 96% |
| 输出 Token 占比 | 占总量的百分比 | 1% |
| 计费档位 | 闲时 / 高峰 二选一 | 高峰 |

### 2. 单价表（写死在代码里，不许改数值）

单位：元 / 百万 Token

| 类型 | 调价前 | 调价后（闲时） | 调价后（高峰） |
|---|---|---|---|
| 输入 · 命中缓存 | 0.02 | 0.05 | 0.10 |
| 输入 · 未命中缓存 | 1.00 | 3.00 | 3.00 |
| 输出 | 2.00 | 9.00 | 9.00 |

### 3. 结果区

必须同时显示：

- **调价前月成本**（元）
- **调价后月成本**（元）
- **涨幅倍数**（保留一位小数，例如 `4.4 倍`）
- **每日成本**（元）
- 一个**可视化对比**（两根柱子或等效形式即可，不许用外部图表库）

### 4. 交互

- 输入变化时**结果实时更新**，不需要点按钮
- 提供至少 **3 个一键预设**（例如"轻度 / 中度 / 重度开发者"），点击后填入对应数值
- 输入非法值（负数、空、非数字）时**给出可读提示，不许显示 NaN**

### 5. 适配

- **手机端（375px 宽）不许出现横向滚动条**
- 桌面端（1440px）布局不许拉伸变形

## 计算口径（照此实现，判分按此）

```
日均总量 T，缓存命中率 c，输出占比 o
输出量        = T × o
输入总量      = T × (1 − o)
命中缓存量    = 输入总量 × c
未命中量      = 输入总量 × (1 − c)

日成本 = 命中缓存量/1e6 × 命中单价
       + 未命中量/1e6  × 未命中单价
       + 输出量/1e6    × 输出单价

月成本 = 日成本 × 30
```

**标准答案（自测用）**：T=4 亿、c=96%、o=1%、输出占比 1%

| 档位 | 日成本 | 月成本 | 涨幅 |
|---|---|---|---|
| 调价前 | ¥31.4432 | **¥943.30** | — |
| 调价后 · 高峰 | ¥121.5360 | **¥3646.08** | **3.9 倍** |
| 调价后 · 闲时 | ¥102.5280 | **¥3075.84** | **3.3 倍** |

月成本按 30 天计。金额显示保留两位小数，涨幅保留一位小数。

## 完成条件

- 你自己判断做完了就停下，并明确说一句"已完成"
- **最长 30 分钟**，到点强制截止，届时交付当前状态
- 允许你自测和修改；**不允许**问问题等待回复（不会有人回）

## 评分维度（公开，共 100 分）

| 维度 | 分数 | 怎么判 |
|---|---|---|
| 需求完成度 | 30 | **机器逐条核对上面的功能清单** |
| 计算正确性 | 15 | **机器用标准答案核验** |
| 手机适配 | 15 | **机器在 375px 检测横向滚动** |
| UI / 视觉 | 20 | 人工评分（唯一主观项） |
| 交互细节 | 10 | 半机器（实时更新、预设、非法输入提示可自动测） |
| 代码质量 | 10 | 人工评分 |

🔴 上述维度在开考前已冻结，**不会因为某个模型犯了什么错而事后追加条目**。
