正在分析契合度……
契合度
结果由名字哈希生成,仅供娱乐。
输入两个名字,爱情计算器会返回一个 0 到 100 的配对百分比和一句俏皮评语。它的底层是确定性哈希,不是人格测试:同一对名字无论顺序如何永远得到相同分数。它是作为聚会玩具造出来的,页面也明确说明了这一点。
分数是如何生成的
在任何评分之前,两个名字要经过三个步骤。第一步是规范化:去掉首尾空格,把内部连续空白合并成一个空格,并把所有字母转成小写。第二步,把规范化后的名字按字母排序,使顺序不起作用。第三步,用心形字符把排序后的一对连接起来,用 FNV-1a(一种快速的 32 位字符串哈希)做哈希。
最终百分比是该哈希值对 101 取模,得到一个 0 到 100 的整数。因为 FNV-1a 把每个字符混入每一位,改动一个字母就会重写整个哈希,从而可能让百分比向任意方向移动。这就是为什么看起来只差一点的两种拼写会落在完全不同的区间。
这里什么算作名字
工具并不判断框里的文字是不是真名。它接受每个字段最多 60 个字符的任意字符串,只拒绝空输入。这带来几个值得了解的结果。
空白会被积极规范化。首尾空格消失,内部连续空白合并为一个空格,所以加空格或内部间距永远不会改变分数。标点、数字和符号不会被剥离,因此 Alice、Alice! 和 Alice1 会产生三个不同的哈希和三个不同的百分比。带重音的字母也有影响:Jose 和带重音的 José 是不同输入,因为重音改变了码元。Emoji 同样被接受,而由于 FNV-1a 哈希的是 UTF-16 码元,一个 emoji 会贡献两个码元而不是一个。
因为两个字段都必填且上限为 60 个字符,这个工具无法用作长句子的通用哈希,也绝不会静默忽略空框。如果你想看一个小改动如何移动数字,就一次改一个字母并重新计算;每种变体都是稳定的,因此可以并排比较结果,而不必担心重跑会改变它们。
使用方法
- 在两个字段中各输入一个名字。输入最多接受 60 个字符,且两者都必填。
- 点击计算,或在任一字段按回车。进度条会跑大约 1.5 秒;这个动画只是装饰,不影响分数。
- 读取圆圈中的百分比及其下方的消息,消息由分数区间选出。
- 点击”再试一次”清除结果并保留同样的名字,或编辑任一字段后重新计算。
如果任一字段为空,工具会显示错误而不是评分,因为没有字符串可供哈希。
实操示例
下面每个数值都可复现;相同的输入永远产生相同的输出。
| 输入的名字 | 规范化并排序后 | 分数 | 区间 |
|---|---|---|---|
| Alice + Bob | alice, bob | 5 | 最低(0–20) |
| Romeo + Juliet | juliet, romeo | 26 | 低(21–40) |
| John + Jane | jane, john | 29 | 低(21–40) |
| Taylor + Jordan | jordan, taylor | 43 | 中(41–60) |
| Alice + Bobby | alice, bobby | 57 | 中(41–60) |
| Alice + Robert | alice, robert | 71 | 高(61–80) |
| Sam + Alex | alex, sam | 75 | 高(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 团队审校 · 最后更新