如果能得到完整的家谱 判断两个人是否亲戚应该是

栏目:资讯发布:2023-10-14浏览:2收藏

如果能得到完整的家谱 判断两个人是否亲戚应该是,第1张

遗传上面,也有一定的概率问题。

由于每一代人遗传的都是父辈基因的一半,孙辈基因数则未必就是爷爷的四分之一。从理论上来讲,除了性别基因,剩下的22对基因中,最多可遗传爷爷辈基因的1/2,最少则为0。两种情况的概率均为1/4194304。

血统则只和代数相关。

家谱的行辈字派是家谱中尤其重要的内容,一般由家庭中的某一位名人制订,编成几句吉祥话,有的文人甚至将其写成诗。

比如浙江《唐氏宗谱》的行辈字派是“福禄永昌隆,和良端世美,才智瑞宁聪”;湖北《汪氏宗谱》的行辈字派是“正大光明,成先于后,世泽延长,齐家有猷”。

中国的字辈,一般都是论中间的字为准(三个字为例),俗称派,是记载族人的排行字语。字辈命名起源于唐、宋,创于明,鼎盛于清,家族的排行,都是有一定的寓意。

一般的家族都要在撰修家谱来确定辈分的划定,达到“辨尊卑、序长幼”的目的。辈分的划分更是家族地位的主要标志,可明白长幼尊卑的伦常之分,符合伦常秩序的宗族组织原则。

大宋赵氏赵氏和大明朱家姓氏的字辈

1、大宋赵氏家族的字辈

字辈命名起源于唐、宋。宋太祖赵匡胤,为后代定的字辈连同自己的匡字一共十四个字,构成一幅对联“匡德惟从世令子,伯师希与孟由宜”。这是人们见到的最早的正式的字辈。

2、大明朱家的字辈

明太祖朱元璋的做法则复杂得多,他规定姓名格式为,姓+字辈+名,还规定取名用字必须用“五行偏旁者”,即以金、木、水、火、土为偏旁的字,而且要以火、土、金、水、木为顺序,即以五行循环相生为顺序。

家谱图怎么画具体如下:

步骤一:整理收集你所要展现的所有信息。

写下你想要展示在家谱里的所有家庭成员,从你的家庭开始分支出来。首先写下你的直系亲属的名字,然后添加上一代,不要忘了兄弟姐妹及其配偶子女,确保没有遗漏的人。作为家族历史重要的一部分,家谱需要时间与耐心来准确绘制。

步骤二:创建树状图。

写上家庭成员的名字,不清楚的可以问一下家里的老人,写好树状图,去问问家族的老人,以寻找更多的信息来绘制家谱图。名字、出生日期、生活照片等等,追寻的代数越久远,这些信息越不好收集。进行一些研究,仔细检查自己的家谱树,这是一个大好机会去更多地了解家族历史。

一般来说,一个家族成员的亲戚关系是由家族血缘关系决定的。在一个家族中,一代人之间的亲戚关系最为密切,因为他们的基因有一半是相同的。随着代数的增加,亲戚关系会逐渐疏远,因为基因的共享程度会逐渐减少。

具体来说,一代人之后的亲戚关系会减半,也就是说,如果你的父母有一半的基因来自于你的祖父母,那么你有一半的基因来自于你的父母,而你的子女只有一半的基因来自于你。这个过程会一直持续下去,随着代数的增加,亲戚关系会越来越疏远。

在家族血缘关系方面,一般认为三代以内的亲戚关系最为密切,而四代以上的亲戚关系就比较疏远了。当然,这只是一个大致的规律,实际亲戚关系的疏密程度还受到许多其他因素的影响,比如家族成员之间的交流、共同生活经历等等。

需要注意的是,家族血缘关系和亲戚关系并不是一成不变的,它们会随着时间的推移和家族成员之间的互动而发生变化。因此,对于具体的家族成员之间的关系,需要结合实际情况进行分析和判断。

#include<stdioh>

#include<stringh>

char w[5][20]={{"child"},{"parent"},{"sibling"},{"descendant"},{"ancestor"}};

    int kong(char a[]) {

    int n=0,i;

    for(i=0;a[i]!='\0';i++) {

    if(a[i]==' ')

    n++;

    else

    break;

    }

    return n;

}

char fam[200][20];

int num[200]={0};

int search(char a[],int n) {

    int i=1;

    while(1) {

    if(!strcmp(a,fam[i]))

    return i;

    i++;

    }

    return 0;

}

int search1(int n,int x) {

    int i=1;

    while(i<x) {

    if(num[i]==n)

    return i;

    i++;

    }

    return 0;

}

char name[1000],word[1000],n1[100],n2[100],d[100];

int main() {

    int n,m,i,j,a,b,t,x,k,h;

    while(scanf("%d%d",&n,&m)!=EOF) {

        memset(fam,'\0',sizeof(fam));

        memset(num,'\0',sizeof(num));

        scanf("%s",fam[1]);

        getchar();

        a=b=2;

        t=1;

        num[1]=1;

    for(i=2;i<=n;i++) {

        memset(name,'\0',sizeof(name));

        gets(name);

        b=kong(name);

        if(b>a) {

            if(fam[search1(t2+1,i)][0]!='\0')

                t=t2+1;

            else 

                t=t2;

        }

        else { if(b<a) {

            h=(a-b)/2;

            while(h>=1) {

                t=t/2;

                h--;

            }

        }}

    if(fam[search1(t2,i)][0]!='\0')

    x=t2+1;

    else x=t2;

    num[i]=x;

    for(j=b;name[j]!='\0';j++)

    fam[i][j-b]=name[j];

    a=b;

    }

    for(i=0;i<m;i++) {

    gets(word);

    k=0;h=0;

    memset(n1,'\0',sizeof(n1));

    memset(n2,'\0',sizeof(n2));

    memset(d,'\0',sizeof(d));

    for(j=0;word[j]!='\0';j++) {

    if(word[j]==' ') {

    k++;

    h=0;

    continue;

    }

    if(k==0)

    n1[j]=word[j];

    if(k==5) {

    n2[h]=word[j];

    h++;

    }

    if(k==3) {

    d[h]=word[j];

    h++;

    }

    }

    if(!strcmp(d,w[0])) {

    a=search(n1,n);a=num[a];

    b=search(n2,n);b=num[b];

    if(a==b2||a==(b2+1))

    printf("True\n");

    else printf("False\n");

    continue;

    }

    if(!strcmp(d,w[1])) {

    a=search(n1,n);a=num[a];

    b=search(n2,n);b=num[b];

    if(b==a2||b==(a2+1))

    printf("True\n");

    else printf("False\n");

    continue;

    }

    if(!strcmp(d,w[2])) {

    a=search(n1,n);a=num[a];

    b=search(n2,n);b=num[b];

    if((a==b+1&&a==b/22+1)||(a==b-1&&b==a/22+1))

    printf("True\n");

    else printf("False\n");

    continue;

    }

    if(!strcmp(d,w[3])) {

    a=search(n1,n);a=num[a];

    b=search(n2,n);b=num[b];

    while(a>0) {

    a=a/2;

    if(a==b) {

    printf("True\n");

    break;

    }

    if(a==0)

    printf("False\n");

    }

    continue;

    }

    if(!strcmp(d,w[4])) {

    a=search(n1,n);a=num[a];

    b=search(n2,n);b=num[b];

    while(b>0) {

    b=b/2;

    if(a==b) {

    printf("True\n");

    break;

    }

    if(b==0)

    printf("False\n");

    }

    continue;

    }

    }

    }

    return 0;

}

听说回答的够长能够自动采纳

如果能得到完整的家谱 判断两个人是否亲戚应该是

遗传上面,也有一定的概率问题。由于每一代人遗传的都是父辈基因的一半,孙辈基因数则未必就是爷爷的四分之一。从理论上来讲,除了性别基因...
点击下载
热门文章
    确认删除?
    回到顶部