java雪花算法 平均分堆為什么會出現(xiàn)重復(fù)情況?重復(fù)要除以幾的階層,為什么?
平均分堆為什么會出現(xiàn)重復(fù)情況?重復(fù)要除以幾的階層,為什么?這里有一個(gè)簡單的例子來說明,四個(gè)人平均分成兩組,然后有(4C2)*(2c2)/(2A2)=三種情況,顯然有三種情況:a、B、a、C、a和D(兩
平均分堆為什么會出現(xiàn)重復(fù)情況?重復(fù)要除以幾的階層,為什么?
這里有一個(gè)簡單的例子來說明,四個(gè)人平均分成兩組,然后有(4C2)*(2c2)/(2A2)=三種情況,顯然有三種情況:a、B、a、C、a和D(兩組中的一個(gè)),因?yàn)檫x擇了一組后,剩下的組將不會被劃分,它將自動(dòng)被劃分分成一組。如果不除以群的階乘,4C2*2c2中會有重復(fù),有a,B,C,a,D,B,C,B,D和C(兩個(gè)群中的一個(gè))。此時(shí),a、B和C將與B、D和a重復(fù),因此我們需要排除重復(fù):兩組的完全排列2A2是相同的。六個(gè)ABCDEF被分成三組。選擇AB、CE、DF組。按照6c2*4C2*2c2的算法,會有3a3種重復(fù),即AB、CE、DF,答案是6c2*4C2*2c2/3a3