HandyTools Hub
← 返回工具列表

爱情计算器

输入两个名字,看看你们的契合度

结果由名字哈希生成,仅供娱乐。

输入两个名字,爱情计算器会返回一个 0 到 100 的配对百分比和一句俏皮评语。它的底层是确定性哈希,不是人格测试:同一对名字无论顺序如何永远得到相同分数。它是作为聚会玩具造出来的,页面也明确说明了这一点。

分数是如何生成的

在任何评分之前,两个名字要经过三个步骤。第一步是规范化:去掉首尾空格,把内部连续空白合并成一个空格,并把所有字母转成小写。第二步,把规范化后的名字按字母排序,使顺序不起作用。第三步,用心形字符把排序后的一对连接起来,用 FNV-1a(一种快速的 32 位字符串哈希)做哈希。

最终百分比是该哈希值对 101 取模,得到一个 0 到 100 的整数。因为 FNV-1a 把每个字符混入每一位,改动一个字母就会重写整个哈希,从而可能让百分比向任意方向移动。这就是为什么看起来只差一点的两种拼写会落在完全不同的区间。

这里什么算作名字

工具并不判断框里的文字是不是真名。它接受每个字段最多 60 个字符的任意字符串,只拒绝空输入。这带来几个值得了解的结果。

空白会被积极规范化。首尾空格消失,内部连续空白合并为一个空格,所以加空格或内部间距永远不会改变分数。标点、数字和符号不会被剥离,因此 Alice、Alice! 和 Alice1 会产生三个不同的哈希和三个不同的百分比。带重音的字母也有影响:Jose 和带重音的 José 是不同输入,因为重音改变了码元。Emoji 同样被接受,而由于 FNV-1a 哈希的是 UTF-16 码元,一个 emoji 会贡献两个码元而不是一个。

因为两个字段都必填且上限为 60 个字符,这个工具无法用作长句子的通用哈希,也绝不会静默忽略空框。如果你想看一个小改动如何移动数字,就一次改一个字母并重新计算;每种变体都是稳定的,因此可以并排比较结果,而不必担心重跑会改变它们。

使用方法

  1. 在两个字段中各输入一个名字。输入最多接受 60 个字符,且两者都必填。
  2. 点击计算,或在任一字段按回车。进度条会跑大约 1.5 秒;这个动画只是装饰,不影响分数。
  3. 读取圆圈中的百分比及其下方的消息,消息由分数区间选出。
  4. 点击”再试一次”清除结果并保留同样的名字,或编辑任一字段后重新计算。

如果任一字段为空,工具会显示错误而不是评分,因为没有字符串可供哈希。

实操示例

下面每个数值都可复现;相同的输入永远产生相同的输出。

输入的名字规范化并排序后分数区间
Alice + Bobalice, bob5最低(0–20)
Romeo + Julietjuliet, romeo26低(21–40)
John + Janejane, john29低(21–40)
Taylor + Jordanjordan, taylor43中(41–60)
Alice + Bobbyalice, bobby57中(41–60)
Alice + Robertalice, robert71高(61–80)
Sam + Alexalex, sam75高(61–80)

最后三行很有意思。给 Bob 多加一个字母,分数就从 5 跳到 57;把这个字母换成 r,又变成 71。人本身没有任何改变,而这正是重点。

五个区间代表什么

分数消息区间
0–20最低档
21–40低档
41–60中档
61–80高档
81–100最高档

这些区间只用来挑一句话。81 分不是任何东西的 81%,也不是对照某个基线测出来的。它只是哈希的一个分桶。

为什么结果毫无意义(这正是重点)

哈希是指纹,不是测量。它告诉你两个字符串是否相同,却对那些字符串背后的人只字不提。输出由取模运算分摊到 0–100,而不是由任何关于爱慕、契合或长久的数据得来。结婚多年的伴侣可能落在最低区间,完全陌生的人也可能落在最高区间,因为这个数字只由拼写导出。在这里诚实很重要:这个页面产出的是娱乐,绝不应把它当作关于一段关系的证据展示给任何人。

合适的用法

  • 聚会和课堂破冰:把手机传一圈,比比分数图一乐。
  • 群聊和直播:让观众提交名字组合,实时看大家的反应。
  • 贺卡和情人节留言:故意加一个傻乎乎的百分比制造喜剧效果。
  • 教学时刻:它是确定性哈希、规范化的紧凑演示,也说明为什么只差一个字节的两个输入会产生毫不相关的输出。

相关工具

常见问题

是什么算法把两个名字变成百分比的?

计算器会规范化两个名字(去首尾空格、合并连续空格、转小写),排序使顺序无关,再用一个心形字符连接,然后跑 32 位 FNV-1a 哈希。接着用哈希值对 101 取模,得到 0 到 100 的整数。除了这套算术之外没有任何配对模型。

为什么交换两个名字分数不变?

在哈希之前,两个规范化后的名字会按字母排序,所以 Alice 加 Bob 会生成与 Bob 加 Alice 完全相同的输入字符串。结果按设计就是顺序无关的,你可以交换两个字段重新计算来验证。

大小写和多余空格会改变结果吗?

不会。每个名字都会去掉首尾空格、把内部连续空白合并为一个空格、并把字母转成小写后再哈希。Alice、ALICE 以及带空格的 alice 都规范化成同一字符串,得分相同。标点和数字会原样保留,并会改变哈希值。

为什么改一个字母会让分数变化这么大?

FNV-1a 是一种雪崩式哈希:一个字符改变会改动整个 32 位值,使取模 101 的结果向任意方向移动。Alice 加 Bob 得 5 分,而 Alice 加 Bobby 得 57 分,Alice 加 Robert 得 71 分。拼写的微小改动并不是分数的小改动。

五个分数区间是什么意思?

这些区间只是装饰性标签:0–20 是最低档消息,21–40 低档,41–60 中档,61–80 高档,81–100 最高档。它们不对应任何被测量的特征或结果,只是决定百分比旁边显示哪句俏皮话。

有人该把百分比当作真实的感情建议吗?

不该。分数来自两个名字字符串的哈希,没有任何心理、统计或预测依据。它无法了解涉及的人。请只把它当作聚会游戏或破冰工具,严肃的感情话题请远离这个数字。

由 HandyTools Hub 团队审校 · 最后更新