如何计算cuboid的数量

针对用户配置了各种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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值