當前位置:星座運勢大全官網 - 八字算命 - 開發親友計算器的邏輯思維過程

開發親友計算器的邏輯思維過程

由於業務需要,需要實現計算親友的功能。

1.直接匹配。

看到需求,第壹時間想到去網上看看有沒有類似的demo。因為我是開發Android的,沒有找到相應的源代碼,就想著自己寫。我在Github上找了壹個js實現的demo,簡單的理解了壹下實現原理:獲取需要計算的數值,進行相應的組合,比如我哥哥的哥哥,然後直接把組合的結果和我寫的表達式進行匹配。會直接組合成?爸爸的爸爸?然後匹配爸爸的爸爸。是爺爺嗎?這樣,然後得到結果。但是這種組合至少有幾千個,性能很差。我想自己寫,明顯繁瑣麻煩。

2 .?分布式計算

處理這種關系我首先想到的是用兩種結合的計算方法,也就是壹步壹步算過去。比如什麽?爸爸的哥哥的兒子的妻子?我先算我爸爸的哥哥得到我叔叔,我叔叔的兒子得到我表哥或者表妹,然後我老婆做我表妹或者嫂子。但是我不能用文字來搭配,不然就太龐大了。我覺得每個人都需要壹個數字來對應,就是我代表0,爸爸代表1,媽媽代表2...全部嗎?親戚都用壹個數字代替。我也很聰明,把男方用單數,把老婆用雙數,這樣+1和-1就可以直接用來計算壹個人的老婆或者老公了。當然,這些只是想法。如果繼續按照這個邏輯關系去思考,會發現並不比第壹種方式容易。因為每種關系都有幾種計算方法,所以對於每個代表的數值,都需要進行幾種計算,即對於1(父親),我需要算出他的兄弟姐妹、父母、子女和我自己的關系,2(母親)還需要列出所有的情況。和第壹種情況壹樣繁瑣,會有很多不完善的地方。比如父親兒子的妻子有三個答案?嫂子,嫂子,老婆。如果更遠,爸爸的爸爸的兒子的妻子呢?有嫂子,有嫂子,有老婆,有表妹。這種方式是完全不可能的。

3.直接計算。

爺爺的孫女有壹個嫂子,壹個嫂子,壹個老婆,壹個表哥,壹個表妹,我爸爸的媳婦有壹個嫂子,壹個老婆。看到這裏,突然有了新的想法。對於壹個人或者壹個身份,他的後代名字都是壹樣的。哥哥的下壹代壹定是我侄子,男的是侄子,女的是侄女。我姐姐的是個兒子。孩子,丈夫,妻子,還有妳的爺爺,或者叔叔,都是因為和父母的關系和妳聯系在壹起的。所以妳必須有壹條線來連接,所以我只需要知道這條線的最高點,以及這個人和我之間需要計算的直接差距。例如,這條線的最高點是什麽意思?爸爸哥哥的兒子?最高點是爸爸的哥哥,也就是叔叔。爸爸的爸爸的兒子?最高點是爸爸的爸爸,也就是爺爺?也就是需要計算的資歷最高的人,我們之間的差距就是妳?是哪壹代?我把我這壹代定義為0代,爸爸,媽媽,叔叔,舅舅...as代1,祖父代2,兒子,侄子,堂兄弟代-1...爸爸哥哥的兒子?最高的時候,父親的哥哥是叔叔,兒子和我是壹輩。那壹定是我的表弟。我的表弟失去了他父親的兒子。最高點是爺爺嗎?他兒子那代是1,是妳爸爸那代,所以只是爸爸,叔叔,舅舅。只需定義兩個變量,壹個記錄當前人的代,父母將是+1,子女將是-1。另壹個變量會記錄最高點,結果是根據最高點計算他的後代。需要註意的是,在計算之前,需要對數值進行積分。兄弟的兄弟是直接融入兄弟嗎?xxx兒子的父親必須是xxx(xxx為男性)或xxx的丈夫(xxx為女性)...有必要把所有的誘惑或者這種不必要的都整合起來。計算時,除了妳的配偶或妳的,還要註意別的嗎?直系親屬的兄弟姐妹和妳有血緣關系,別人配偶的兄弟姐妹和妳沒有血緣關系?就像妳嫂子的兄弟姐妹與妳無關壹樣,妳需要在這方面做好判斷。爺爺的孫子壹定是妳父親的孩子?父親的兄弟的後代。還要註意的是,最高點是爺爺,和妳是壹輩的,但可能是妳爺爺的兒子的後代,也可能是妳爺爺的女兒的後代。這些處理好了,就差不多了。

有點簡單,只是壹個邏輯思維過程。這只是壹個想法。