参考:http://blog.csdn.net/cymvp/article/details/53764917
针对用户配置了各种Select Rules, 如何确定最终的cuboid数量呢? 知道了如何评估cuboid数量,也就可以评估出计算量的大小。
设有: A, B, C, D, E, F, G, H, I 这9个维度, 那么cuboid的总数为2^9 = 512个.
是怎么计算出来的呢? 两种方法:
1 C09 + C19 + C29 + C39 + C49 + ..... C99 = 512;
2 将每个维度看成2种取值, 取空,或取值, 如A维度, 有两种选择, 选或者不选;
这样相当于扔9次硬币,每次不是正面就是反面,然后看总共有多少种组合:
所以相当于2^9 = 512种;
知道了上面的第2种方法,那么继续往下看:
设hierarchy维度为: [A, B, C];
设joint维度为: [D, E], [F, G];
然后nomal维度就是: [H, I];
[A, B, C]的取值组合为: A, AB, ABC, 空 这4种;
[D, E]的取值组合为: DE, 空这2种;
[F, G]的取值组合为: FG, 空这2种;
H为: H, 空这2种;
I为: I, 空这2种;
由上面第2种计算方法, 各个组合维度间, 是乘积关系, 所以结果为:
4 * 2 * 2 * 2 * 2 = 64;
减少了8倍.
上面计算时,假定所有组合间没有交叉维度,如果有维度在多个组合间存在,或者有mandatory维度,那么还可以减少cuboid;
如何计算cuboid的个数
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...