Giter Site home page Giter Site logo

Comments (11)

mumuy avatar mumuy commented on May 17, 2024 1

不是很看得懂,大概意思明白。你这是打算把这个称呼强行用算法实现呀,这样难度是挺大的。这样写对于血缘关系的亲戚还好理,对于姻亲关系可能就有麻烦了。
很多东西可能并不一定是按逻辑可以理的:
比如“舅公”,按逻辑来说应该就是爸爸妈妈的舅舅,怎么说也是比自己长2辈的。但是“舅公”还可以是女方老公的舅舅,因为传统文化里很多地方在姻亲的称呼中需要让自己以孩子的辈分去称呼对方,久而久之就存在称呼跨辈分的情况。
还有比如“小舅子”“”小姨子“,很多称呼不是靠公式可以关联的,它就是约定俗成的东西

from relationship.

mumuy avatar mumuy commented on May 17, 2024

超过太多层,没有找到可靠的数据源应该叫什么。参考《称谓录》等资料都没有这方面的数据,古代亲戚九族、五服以外已经是远亲了,这样的关系暂时没有找到相关资料显示应该叫什么。如果你知道应该怎么叫,欢迎提供下相关称谓~

目前程序以3代内普遍能有接触的亲戚用口语显示,3代以外用书面语显示。如果分两种模式,3代外亲戚并没有可靠的口语称呼,数据量也会不对称。

from relationship.

MYXJ0001 avatar MYXJ0001 commented on May 17, 2024

近期自己为了巩固业务能力,也在尝试编写类似的程序,所以展示一下自己的思路
其实找到规律后应该可以向外无限推下去了
9种基础关系(父、母、兄、弟、姐、妹、子、女、配偶)的81种二元组合,只有36种有效组合。其余的组合都需要化简,其中有16种组合需要根据主视角性别进行化简
如不考虑姻亲,所有的亲属关系都可以化简为这个通式
(直系长辈)的(兄弟姐妹)的(直系晚辈)
其中可以省略其中的1—2项,如3项全部省略就默认是自己了
直系长辈和直系晚辈这2项是可数序列,可以表示为二进制字符串的形式,第二位起是有效数据。比如“母的父”(毑父)=”101“,“女的女的子”(婗曾婗子)=”1001“
兄弟姐妹也可以表示为二进制字符串。“姐妹”=”10“,“兄弟”=”11“,“妹”=”100“,“弟”=”101“,“姐”=”110“,“兄”=”111“
亲属关系化简为通式后,把三段二进制字符串进行整合重组,得出最终的称呼代码并读取为漢字。最终的称呼代码分为两段,第一段为旁系信息(1为直系,10—111为兄弟姐妹,1000以上为堂表亲),第二段为辈分信息(大于1的正数为长辈,1为平辈,负数为晚辈)。旁系信息的读取规则是,”从母/姨表/姨“=”00“,”舅表/舅“=”01“,”姑表/姑“=”10“,”从父/叔表“=”11“,”叔“=”110“(0放在后边防止误读),”伯“=”111“,”甥“=”0“,”侄“=”1“。
考虑姻亲后,情况稍微变得复杂了(化简后如果涉及到”自己“,可能会出BUG),这时需要以配偶为界分段确定主视角、分段计算。你的程序里已经给出了父母辈、平辈、子辈、孙辈姻亲的计算方法,在此不再赘述。祖辈和更长辈分的姻亲可以参考父母辈的姻亲处理,比如”姑祖父族“叫”姑祖姻“(类比姑父族叫”姑姻“)。曾孙辈和更晚辈分的姻亲可以参考子辈、孙辈的姻亲处理,比如”婗曾婗媳族“叫”婗曾婗眷“(类比婗媳族叫”婗眷“)

对于非正式用语(口语)的处理,3代以内的亲属有惯称,直接用惯称即可(但需要回避”外“这个有争议的字眼)。3代以外的亲属可以截取整合正式用语(书面语)的关键字,再以相近的惯称作为非正式用语(口语)。

from relationship.

mumuy avatar mumuy commented on May 17, 2024

并不觉得“外”存在任何争议,称呼本来就是约定俗称的东西,所谓的“政治正确”实际上一种道德绑架,不仅愚蠢还幼稚。称呼本来就承载了文化信息,内外只是针对宗族而言,并没有刻意区别对待什么。妈妈的妈妈叫外婆,有些人觉得外字怎么怎么滴,可是老婆的侄子叫内侄,老公的侄子叫外侄呀,语言本来只是为了表达需要,拘泥于字眼甚至让人觉得可笑。

目前没有找到相关资料有关于姑祖父族的称谓,虽然是可以类比,但还是希望有确定一点的,以免误导别人。

from relationship.

mumuy avatar mumuy commented on May 17, 2024

你的算法我并没有看明白耶,为什么要转化成二进制?好处在哪里?肯定是需要它能解决某些问题你才选择采用的对不对?

3段二进制整合的话,如何知道10110是姐妹(10)的叔(110)还是弟弟(101)的姑姑(10)?

from relationship.

MYXJ0001 avatar MYXJ0001 commented on May 17, 2024

整合过程模拟列竖式笔算,3段需要去掉前导位
整合结束后,2段需要补上前导位
比如”母的父(1”01“)的弟(10”1“)的子的子(1”11“)“,列竖式表达就是
1 1……从父
0 1……舅表
T 1……兄弟
输出端”1 11 01 1“、”1“
需要区分兄弟时,再补上一位,”11 01 01“、”1“&”11 01 11“、”1“
”父的父(1”11“)的妹(10”0“)的子(1”1“)“,列竖式表达就是
1 0……姑表
1 1……叔伯(父)
T
输出端”1 10 11“、”11“
需要区分叔伯时,再补上一位,”10 110“、”11“&”10 111“、”11“
”母(1”0“)“的弟(10”1“)的女的女(1”00“),列竖式表达就是
0 1……舅表
T 0……甥
0……(女)
输出端”1 01 0“、”-10“

from relationship.

mumuy avatar mumuy commented on May 17, 2024

我是完全看不懂了,用二进制的好处在哪里?如果换成字母,不是可以节约更多空间吗?

from relationship.

mumuy avatar mumuy commented on May 17, 2024

看不到文件

from relationship.

mumuy avatar mumuy commented on May 17, 2024

issuses能发附件吗?都找不到在哪里

from relationship.

MYXJ0001 avatar MYXJ0001 commented on May 17, 2024

亲属计算器标准版.docx

from relationship.

MYXJ0001 avatar MYXJ0001 commented on May 17, 2024

relakey.docx
键盘界面头文件

from relationship.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.