降纬编码技巧

2 篇文章 0 订阅
2 篇文章 0 订阅
如文中有不对的地方,请多多指教。        降维攻击,顾名思义,首先要降维。如三维空间的物体在二维空间中,物体自身微观粒子相互之间的作用力公式将发生变化,物体分子将不能保持现有的稳定状态,极可能发生解体,导致物体本身毁灭。降维打击就是将攻击目标本身所处的空间维度降低,致使目标无法在低维度的空间中生存从而毁灭目标。摘自 https://baike.baidu.com/item/%E9%99%8D%E7%BB%B4%E6%94%BB%E5%87%BB/7959455         那么条件矩阵可以降维吗?在特定的需求映射下,如何利用降维和散点映射实现最简单的解决方法?
     举个适用场景例子,代码已经成型,运行很久,突然增加一个维度的数值。有先决条件如下,第一,假设条件判断太多,很难重构。第二,时间问题。 第三,可能以后只会增加这一个维度。这时候,你如何最简单的增加一个参数,而不变动代码?
    先介绍一下克罗内克积。
    克罗内克积 参考:https://zh.wikipedia.org/wiki/%E5%85%8B%E7%BD%97%E5%86%85%E5%85%8B%E7%A7%AF
数学上,克罗内克积是两个任意大小的矩阵间的运算,表示为。克罗内克积是张量积的特殊形式,以德国数学家利奥波德·克罗内克命名。
     下面使用一个例子,简单明了的阐述这个技巧。

     其中,A表示条件纬度A, B表示条件纬度B,以此类推。

     A,B中分别包含2个条件取值, C中包含一个条件值,那么ABC的克罗内克积 如下



    这个即是条件矩阵组合,包含四组条件,其中,a1b1c1表示三种条件值组合。

    此时如果C增加一个取值,那么条件矩阵将会如下:
   


   依次类推,每增加A,B,C中任何一个值,矩阵以2倍扩展。 编码的复杂度递增,不能收敛。
   如何使得代码由繁化简,最好达到降维的效果?
可以找到一个条件,满足:为一种条件。
这样上述的条件矩阵就等于:
八种条件矩阵降为4种条件矩阵,如此,便可以做到化繁为简的编程效果。这个问题的精髓在于如何找到降维的条件,然后作出最小改动,达到最佳效果。或者构建代码的时候,就可以降低条件维度,以达到化繁为简的目的。太过于复杂的代码,日后维护也十分困难,如果能够把复杂的代码简单化,不仅编程容易,而且容易维护。
后续有时间,我会写一篇在工作中用到的实例。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值