# QQ 评估规则

从以下多个维度进行评估：

1. QQ 号码长度。
2. QQ 注册时间。
3. QQ 等级。
4. QQ 号特殊规则比例系数。

估分计算逻辑：
QQ 估分：（长度估分 + 注册时间估分 + 等级估分） *（1+特殊规则比例系数）
QQ 价值：等于 QQ 估分。


## 1. QQ 号码长度贡献函数

使用函数：

```js
function getPriceByQQLength(qq) {
  const minPrice = 100; // 最低价格
  const maxPrice = 3000; // 最贵
  const decay = 0.1; // 衰减速度

  return minPrice + (maxPrice - minPrice) * Math.exp(-decay * (qq.length - 5));
}
```

## 2. QQ 注册时间。

估分函数：

```js
function calculateRegistrationTimeScore(registerTimestampSeconds) {
  const minScore = 100;
  const maxScore = 1000;

  // 控制分数增长速度，越大越容易接近 100
  const decayRate = 0.02;

  const nowSeconds = Date.now() / 1000;
  const accountAgeSeconds = Math.max(0, nowSeconds - registerTimestampSeconds);

  const secondsPerYear = 365.25 * 24 * 60 * 60;
  const accountAgeYears = accountAgeSeconds / secondsPerYear;

  const score =
    minScore +
    (maxScore - minScore) * (1 - Math.exp(-decayRate * accountAgeYears));

  return Number(score.toFixed(2));
}
```

## QQ 号特殊字符进行比例扩张。

如果命中特殊字符，则按照比例进行系数乘法求系数估分+原始估分得到最终估分。

如下规则表

|       规则名称        |                                   逻辑                                    |                  系数 |
| :-------------------: | :-----------------------------------------------------------------------: | --------------------: |
| 520 字符匹配 ‘我爱你’ |                       字符中包含 '520'，可多次判定                        |                   0.1 |
| 521 字符匹配 ‘我爱你’ |                       字符中包含 '521'，可多次判定                        |                   0.1 |
|     完整数字回文      |                           整个QQ号为回文字符串                            |                     1 |
|     简短数字回文      |                存在5个以上的回文字符，与完整数字回文可重复                |                   0.2 |
|       手机号式        |                          以手机号3位开头的QQ号码                          |                   0.2 |
|      存在递增递减数字       | 至少3位以上，按照长度进行线性增加系数，从0.1开始累积，每多一个字符增加0.1 | 0.1 开始，每次增加0.1 |

## 3. QQ 等级贡献函数

原规则缺少等级的具体函数。为了保持与注册时间相同的“平滑增长、存在上限”特征，本复刻版补充如下：

```js
function calculateLevelScore(level) {
  const maxScore = 1000;
  const decayRate = 0.035;
  return maxScore * (1 - Math.exp(-decayRate * Math.max(0, level)));
}
```

0 级为 0 分，等级越高越接近 1000 分，但不会无限增长。

## 4. 特殊规则判定细则

- `520`、`521` 按出现次数分别累加 0.1。
- 完整回文系数为 1；同时包含至少 5 位回文片段时，可再叠加局部回文的 0.2。
- 局部回文只计一次，展示最长命中片段，避免同一串数字产生过多嵌套重复。
- 递增或递减数字必须逐位相差 1。3 位系数为 0.1，每增加 1 位增加 0.1；多个独立片段可以叠加。
- 手机号式以当前常见的中国大陆手机号前三位号段判断，QQ 号码本身不要求为 11 位。

## 5. 复刻版扩展娱乐规则（v1.2）

| 规则名称 | 逻辑 | 系数 |
| :--- | :--- | ---: |
| 1314 字符匹配“一生一世” | 每出现一次可重复判定 | 0.15 / 次 |
| 3344 字符匹配“生生世世” | 每出现一次可重复判定 | 0.15 / 次 |
| 2013 字符匹配“爱你一生” | 每出现一次可重复判定 | 0.15 / 次 |
| 2014 字符匹配“爱你一世” | 每出现一次可重复判定 | 0.15 / 次 |
| 9420 字符匹配“就是爱你” | 每出现一次可重复判定 | 0.15 / 次 |
| 2099 字符匹配“爱你久久” | 每出现一次可重复判定 | 0.15 / 次 |
| 168 字符匹配“一路发” | 每出现一次可重复判定 | 0.10 / 次 |
| 518 字符匹配“我要发” | 每出现一次可重复判定 | 0.10 / 次 |
| 770 字符匹配“亲亲你” | 每出现一次可重复判定 | 0.10 / 次 |
| 880 字符匹配“抱抱你” | 每出现一次可重复判定 | 0.10 / 次 |
| 豹子号 | 连续出现至少 3 个相同数字，3 位从 0.15 起，每多一位再增加 0.15 | 0.15 起 |

固定寓意组合可以互相叠加，但同一段数字不能被不同寓意交叉占用。匹配优先级以规则表顺序为准：`520`、`521`、`1314` 优先于后续扩展组合。例如 `5201314` 会命中 `520` 和 `1314`，总计增加 0.25 系数；虽然其中间字符也可拼成 `2013`，但因片段交叉，不会再重复计算。

> 所有分数和价格只用于娱乐展示，不代表真实交易价格或资产价值。
