java兩個(gè)list取交集 如何求多個(gè)集合的交集?
如何求多個(gè)集合的交集?假設(shè)一個(gè)2∩一個(gè)3,。。。A 2∩A 2∩。有三種解決方案:1。根據(jù)正常優(yōu)先級(jí)從左到右:首先計(jì)算A1∩A2的值,假設(shè)該值等于S1,然后計(jì)算S1∩A3的值,依此類(lèi)推,直到得到sn-
如何求多個(gè)集合的交集?
假設(shè)一個(gè)2∩一個(gè)3,。。。A 2∩A 2∩。
有三種解決方案:
1。根據(jù)正常優(yōu)先級(jí)從左到右:
首先計(jì)算A1∩A2的值,假設(shè)該值等于S1,然后計(jì)算S1∩A3的值,依此類(lèi)推,直到得到sn-1∩an的值,這是所有集合交集的結(jié)果。
2. 利用交換律和結(jié)合律來(lái)改變優(yōu)先權(quán)來(lái)計(jì)算:
在這N個(gè)集合中,首先比較容易找到兩個(gè)集合的交集,所以我們可以先找出它們的交集,假設(shè)s,然后看哪一對(duì)s和集合的其余部分比較容易找到交集等等,直到所有集合都匹配為止最終值是所有集合交集的結(jié)果。
3. 遞歸解決方案:事實(shí)上,它是上述兩種方法的變體。N個(gè)集合的交集可視為函數(shù)f,其參數(shù)為N個(gè)集合,簡(jiǎn)稱(chēng)f(N):則N-1個(gè)集合的交集可以按同一個(gè)函數(shù)求解,但參數(shù)不同——N-1個(gè)集合,簡(jiǎn)稱(chēng)f(N-1),假設(shè)解為s;然后s和集的其余部分找到交集是函數(shù)f的結(jié)果,函數(shù)f的參數(shù)是N個(gè)集。有了這個(gè)遞歸表達(dá)式,就可以通過(guò)計(jì)算機(jī)編程來(lái)求解。