名字测试算法 取名算命打分测试

小编

“名字测试/取名算命打分”常见算法主要来自民俗体系,建议定位为娱乐参考,不要当成科学。一个比较完整的取名打分系统通常由以下几部分组成:

名字测试算法 取名算命打分测试

1. 常见打分维度

| 维度 | 内容 | 建议权重 |

|||:|

| 五格数理 | 天格、人格、地格、外格、总格的笔画吉凶 | 30% |

| 三才五行 | 天格、人格、地格对应五行,看相生相克 | 20% |

| 生辰八字 | 根据出生年月日时分析五行喜忌,名字补益 | 25% |

| 音形义 | 读音、寓意、字形美观、是否拗口 | 15% |

| 实用性 | 重名率、谐音、性别适配、书写难度 | 10% |

2. 五格数理算法

需要先确定使用哪种笔画:

- 康熙笔画:传统姓名学常用

- 简体笔画:现代应用常用

五格计算方法

假设:

- 姓氏笔画:`surname_strokes`

- 名字笔画:`name_strokes`

例如:

张三丰

张 = 11,三 = 3,丰 = 18

单姓双名

```text

天格 = 姓氏笔画 + 1

人格 = 姓氏笔画 + 名字第一个字笔画

地格 = 名字两个字笔画之和

外格 = 名字最后一个字笔画 + 1

总格 = 姓名全部笔画之和

```

通用计算规则

```python

def five_grid(surname_strokes, name_strokes):

"""

surname_strokes: list[int] 姓氏笔画,如 [11] 或 [5, 10]

name_strokes: list[int] 名字笔画,如 [3, 18] 或 [9]

"""

天格

if len(surname_strokes) == 1:

heaven = surname_strokes[0] + 1

else:

heaven = sum(surname_strokes)

人格:姓最后一个字 + 名第一个字

personality = surname_strokes[-1] + name_strokes[0]

地格

if len(name_strokes) == 1:

earth = name_strokes[0] + 1

else:

earth = sum(name_strokes)

总格

total = sum(surname_strokes) + sum(name_strokes)

外格

outer = (

(surname_strokes[0] if len(surname_strokes) > 1 else 1)

+

(name_strokes[-1] if len(name_strokes) > 1 else 1)

)

return {

"天格": heaven,

"人格": personality,

"地格": earth,

"外格": outer,

"总格": total

}

```

3. 数理吉凶评分

传统姓名学会把 1—81 的数理分为:

```text

大吉、吉、半吉、凶、大凶

```

你可以建立一个表:

```python

number_luck = {

1: "大吉",

2: "凶",

3: "大吉",

4: "凶",

5: "大吉",

...

81: "大吉"

}

```

然后换算成分数:

```python

luck_score = {

"大吉": 100,

"吉": 85,

"半吉": 70,

"凶": 45,

"大凶": 20

}

```

五格总分可以这样算:

```text

五格分 = 天格分 × 10% + 人格分 × 30% + 地格分 × 25% + 外格分 × 10% + 总格分 × 25%

```

传统上较重视:

- 人格:主运

- 地格:前运

- 总格:后运

4. 三才五行算法

三才指:

```text

天格、人格、地格

```

把数理尾数转换成五行:

| 尾数 | 五行 |

|||

| 1、2 | 木 |

| 3、4 | 火 |

| 5、6 | 土 |

| 7、8 | 金 |

| 9、0 | 水 |

代码示例:

```python

def number_element(num):

last = num % 10

if last in [1, 2]:

return "木"

elif last in [3, 4]:

return "火"

elif last in [5, 6]:

return "土"

elif last in [7, 8]:

return "金"

else:

return "水"

```

五行相生:

```text

木生火,火生土,土生金,金生水,水生木

```

五行相克:

```text

木克土,土克水,水克火,火克金,金克木

```

三才评分可以这样:

```python

def relation_score(a, b):

generate = {

"木": "火",

"火": "土",

"土": "金",

"金": "水",

"水": "木"

}

overcome = {

"木": "土",

"土": "水",

"水": "火",

"火": "金",

"金": "木"

}

if a == b:

return 80

elif generate[a] == b:

return 100

elif generate[b] == a:

return 90

elif overcome[a] == b or overcome[b] == a:

return 50

else:

return 70

```

5. 生辰八字取名算法

如果要做“取名算命”,一般还会加入八字。

需要输入:

```text

出生年、月、日、时

出生地

性别,可选

```

基础流程:

```text

1. 将公历时间转换为四柱八字

2. 得到年柱、月柱、日柱、时柱

3. 分析日主五行强弱

4. 判断喜用神

5. 名字用字尽量补喜用五行

```

例如:

```text

八字五行缺水,喜水、木

那么名字可以优先选择五行为水、木的字

如:涵、泽、沐、清、林、森、桐等

```

但八字算法比较复杂,涉及:

- 节气换月

- 天干地支

- 藏干

- 旺衰

- 十神

- 格局

- 喜用神判断

实际开发时可以接入万年历库,或建立干支转换模块。

6. 音形义评分

这一部分更适合现代取名。

可以从以下方面打分:

读音

```text

是否顺口

是否平仄协调

是否有不良谐音

```

例如:

```text

杜子腾 ≈ 肚子疼

史珍香 ≈ 屎真香

```

这类名字应大幅扣分。

字义

加分:

```text

寓意美好、积极、文雅、大气

```

扣分:

```text

生僻、消极、俗气、歧义明显

```

字形

加分:

```text

结构协调

繁简搭配合理

书写美观

```

扣分:

```text

笔画过多

过于生僻

结构拥挤

```

7. 综合评分公式示例

```python

final_score = (

five_grid_score 0.30 +

three_talent_score 0.20 +

bazi_score 0.25 +

sound_meaning_shape_score 0.15 +

practical_score 0.10

)

```

最后可以输出:

```text

姓名:张三丰

综合评分:88分

五格:86分

三才:90分

八字补益:82分

音形义:92分

实用性:85分

评价:名字读音响亮,字义稳重大气,五格配置较佳,适合作为男孩名字。

```

8. 简单测试模板

如果你想测试一个名字,可以提供:

```text

姓氏:

名字:

性别:

出生日期:

出生时间:

出生地:

使用康熙笔画还是简体笔画:

```

例如:

```text

姓氏:李

名字:沐辰

性别:男

出生日期:2024-08-15

出生时间:上午9:30

出生地:杭州

笔画:康熙笔画

```

我可以按照上述规则帮你做一个名字打分分析。