程序员如何给娃起名字?让我们一起看看取名网的逻辑!

简介: 程序员如何给娃起名字?让我们一起看看取名网的逻辑!

给孩子取名是一件很讲究的事情,有的直接花钱让人算,有的用族谱排字,有的用特别喜欢的诗歌或历史事件。暂时不管封建迷信是不是,这是父母美好愿望最直接的体现。毕竟人活着还是需要精神上的满足。本文的理论基础主要是五格剖象法与八字四柱五行相结合,试图用JS脚本实现半自动命名。

背景

我有个朋友对中国传统文化更感兴趣,周易、八字、中医、冥想等都研究过一点,五行八卦等原则也几乎了解了七七八八。最近需要给孩子起名,没有族谱,没有特别喜欢的诗,只能自己研究命名。他朋友问,为什么不自己花钱?码农,不花钱的地方肯定不花钱。怎么会错过这么好的研究数学的机会,最好用自己的轮子。

据说五格剖象法是由日本熊崎健翁于1918年初创造的。因此,严格地说,它只是基于中国传统文化理论创造的一种实践方式,可以简单地理解为用名字笔画幸运数字。这里就不赘述具体的规则和原则了,想了解细节的同学请自行查阅。

因为五格剖象法只是用数字看吉凶,维度太单一。汉字分为五行,普通人都知道一个道理:八字缺什么就补什么(其实比较复杂,有藏干之类的),比如苗、鑫、林、森这个词在名字里很常见。因此,笔者结合八字【四柱五行】补充了五格的实践。不幸的是,四柱五行的规律过于复杂,不适合零造轮,因此直接使用现成软件。

这几乎是市场上收钱命名的套路,最后,综合考虑寓意和平仄,那么名字肯定不会差,废话不多说我们来看演示结果!

效果展示

假设孩子姓【赵】,缺【金】【土】,女孩。

启动脚本并使用:

image.png

我们看看运行脚本后的结果:

image.png

随便挑一个测一下,比如【宸巍】:

image.png

感兴趣的学生可以自己试试。除了外观(不重要),这个名字是吉祥的。此外,作者还添加了拼音,因为成千上万的结果,所以一旦你确定了你最喜欢的发音,你可以根据拼音搜索。

正文

使用说明

毕竟是半自动的,所以还是要有一些人工操作。另外需要注意的是,在使用这个脚本之前,你必须至少使用github和nodejs的一些基本操作。当然,如果你只想看热闹,也很受欢迎。

基础数据

首先,准备基本数据:文字库、五格吉凶数字库,如下:直接上代码!

文字库

数据格式用 ts 表示如下:

// 五行
enum Ele {
  wood,
  fire,
  earth,
  metal,
  water,
}
// key 就是 字
Record<string, {
  char: string; // 字
  ele: Ele; // 五行
  strokes: number; // 笔画
  sound: string; // 拼音
}>

看到JSON结果,eg:

{
  "一":{"char":"一","ele":2,"strokes":1,"sound":"yi"},
  "乙":{"char":"乙","ele":2,"strokes":1,"sound":"yi"},
  "刁":{"char":"刁","ele":1,"strokes":2,"sound":"diao"},
  // ...
}

五各吉凶数字库

数据格式用 ts 表示如下:

enum Sex {
  female,
  male,
}
Array<{
  desc: string;
  score: -2 | -1 | 0 | 1 | 2; // 吉正数;凶负数,处理的时候要剔除
  sex?: Sex; // 部分吉凶只针对男性或女性,使用时会根据性别进行过滤
  nums: number[];
}>

eg:

[  
  {
    "desc": "女德运暗示数(具有妇德,品性温良,助夫爱子)",
    "score": 1,
    "sex": 0,
    "nums": [5, 6, 11, 13, 15, 16, 24, 32, 35]
  },
  {
    "desc": "女性孤寡运暗示数(难觅夫君,家庭不和,夫妻两虎相斗,离婚,严重者夫妻一方早亡)",
    "score": -2,
    "sex": 0,
    "nums": [21, 23, 26, 28, 29, 33, 39]
  },
]

核心逻辑

1.根据性别和五格吉凶数字库生成所有吉的数字,并去重;

2.暴力三层遍历

  • 先选取一个吉数,即【总格】。减去【姓】的笔画,得到剩余笔画数,即【地格】,并保证【地格】是吉数;
  • 暴力遍历所有笔画相加等于剩余笔画数的两个字,当然前提是经过了五行的筛选,另外还要保证【姓】+【第二个字】的笔画数,即【人格】是吉数;
  • 跳回第一层,选取另一个吉数,执行下一个循环。

这样做的效果是:【总格】、【人格】、【地格】肯定是吉数;【天格】不受控(取决于姓);【外格】不保证效果,但由于外格没那么重要所以就随缘了;

3.将结果数据进行友好性处理,生成文件。

最后贴一点核心代码片段,大家“懂意思”就行了,避免交智商税!

numData.nums.forEach((totalScore) => {
    const earthScore = totalScore - surStks;
    if (allGoodNums.includes(earthScore)) {
      chars.forEach((secd) => {
        const manScore = surStks + secd.strokes;
        const lastRest = earthScore - secd.strokes;
        if (
          lastRest > 0 &&
          secd.ele === eles[0] &&
          allGoodNums.includes(manScore)
        ) {
          chars.forEach((last) => {
            if (
              lastRest === last.strokes &&
              last.ele === eles[1]
            ) {
              const { cosmos, man, earth, outside, total } = getNameScore({
                surnameData,
                secondNameData: secd,
                lastnameData: last,
              });
              const fiveRes = `总${total}人${man}地${earth}天${cosmos}外${outside}`;
              result.push(
                `${secd.char}${last.char}(${secd.sound},${last.sound}):${fiveRes}`
              );
            }
          });
        }
      });
    }
  });

结语

可以看到,逻辑其实非常简单,实现成本也不大,一两天就能搞出来。

目录
相关文章
|
存储 JSON 关系型数据库
基于GeoTools的GeoJson导入到PostGis实战
GeoJson是一种对各种地理数据结构进行编码的格式,基于json的地理空间信息数据交换格式。GeoJson对象可以用来表示几何,特征或者特征集合。支持地理点、线、面、多点、多线、多面及几何集合。GeoJson不是本文的重点,因此不再赘述。
2134 0
基于GeoTools的GeoJson导入到PostGis实战
|
6月前
|
数据采集 安全 算法
半天百度收录新站方法
这段内容介绍了新站快速被百度收录的优化策略。首先,注重网站内容优化,包括原创高质量内容、合理布局核心关键词及清晰页面结构。其次,利用百度站长工具,如添加站点、主动推送链接和提交sitemap。再者,通过高权重平台发布链接、社交媒体推广及友情链接交换构建外部链接。此外,保持服务器稳定、定期更新内容并正确设置robots.txt可提升抓取频率。部署SSL安全证书有助于提高安全性与排名。最后,强调需保持耐心,因收录时间受多种因素影响,通常1-7天内可被收录。
131 3
|
存储 开发工具 git
|
8月前
|
存储 人工智能 弹性计算
2025年阿里云企业高性能云服务器租用价格与选型详解
随着企业数字化转型,阿里云于2025年推出多款高性能云服务器实例,涵盖计算、通用和内存密集型场景。文章分析了企业选择云服务器的核心要点,包括明确业务需求(如计算密集型任务推荐计算型实例)、性能与架构升级(如第八代实例性能提升20%),以及第九代实例支持AI等高算力需求。同时提供了配置价格参考和成本优化策略,助力企业实现效率与成本的最优平衡。
|
应用服务中间件 nginx
一文搞定Nginx配置RTMP!
一文搞定Nginx配置RTMP!
937 4
|
负载均衡 监控 Java
@SentinelResource和openFeign+sentinel 对远程调用熔断降级加规则持久化的具体实现
自定义全局限流处理类openFeign+sentinel 对远程调用熔断降级
267 0
|
JavaScript 前端开发 API
深入理解Vue中的异步更新机制和$nextTick方法
在Vue开发中,我们经常会遇到需要在 DOM 更新完成后执行某些操作的情况。为了解决这个问题,Vue提供了`$nextTick`方法,它可以让我们在下次 DOM 更新完成后执行回调函数。本文将深入探讨Vue的异步更新机制、`$nextTick`的原理和使用场景,以及分别在 Vue2.x 与 Vue3.x 中的相同点和区别。
12813 48
深入理解Vue中的异步更新机制和$nextTick方法
港澳台居民大陆居住证号码正则表达式
港澳台居民大陆居住证号码正则表达式
2406 0
|
消息中间件 Shell Go
GoLang 环境变量与配置
编程语言中的环境变量和配置管理是关键,Go 项目中配置文件不被打包,需通过环境变量解耦代码。
339 0