【无标题】

for (uint32_t i = 0; i < blob_size; i++)

        {

            dst[i] = src[i * mix_primes % blob_size];

        }

/*

设混淆的质数为prime

假设索引i,j(i < j < blob_size < prime)对应对一同索引k,则可推到出

i * prime = blob_size * x + k

j * prime = blob_size * y + k

其中,x和y分别为除数,(x < y < prime)

两式相减得:

(j - i) * prime = (y - x) * blob_size

因为任意一个数都可以拆分成多个质数相乘,但是

由于y-x和blob_size都小于prime,所以假设其拆分的质数为q1,q2...

不可能组合成prime,所以上式不成立,即不存在索引i,j对应同一个索引k

*/

/*

连续三个数相加大于0,连续五个数相加小于0,最多能包含几个数?5个数

a1 + a2 + a3 > 0

a2 + a3 + a4 > 0

a3 + a4 + a5 > 0

a1 + a2 + a3 + a4 + a5 < 0

a4 + a5 < 0 => a3 > 0

a1 + a5 < 0 => 

a1 + a2 < 0 => a3 > 0

-1 -1 3 -1 -1满足要求


 

a1 + a2 + a3 > 0

a2 + a3 + a4 > 0

a3 + a4 + a5 > 0

a4 + a5 + a6 > 0

a1 + a2 + a3 + a4 + a5 < 0

a2 + a3 + a4 + a5 + a6 < 0

a4 + a5 < 0 => a3 > 0 a2 > 0

a1 + a2 < 0 

a2 + a3 < 0 => a1 > 0 a4 > 0 

所以a1 + a2 > 0和a1 + a2 < 0矛盾

*/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值