=由3X+1想到?=
任何一个正整数,如果是奇数,就把这个奇数乘以3然后再加一,然后把结果重新作为起点,如果是偶数,就把这个偶数除以二,最后都会变回4和2和1循环?
那么问题来了,把文中的3替换为任意素数,是否也存在呢?比如把3替换为5,比如7,比如11,比如29,后面的+1是不是也能替换为任何一个奇素数?
三条规则?
规则1:如果不是素数,而是奇数,那么这个数就乘以一个奇素数,然后再加上一个奇素数,然后得出的结果再阶乘?再加上一个偶数的完全平方数?
规则2:如果不是素数,而是偶数,那么就除以2,然后减去1?
规则3:如果是奇素数,就计算阶乘?如果是偶素数(2),就乘以一个十位数的素数再加上一个三十位数的素数?
这些个规则,可以任意改动,这样,就可以把生成规则作为密钥,而生成的数据就作为密文,可以用于校验,也可以用于成为垃圾内容?这些奇怪的规则,在密钥中可以有大用?
这种一个起点数,然后使用规则能够只用起点数来生成固定路线的不加入随机因素的算法,可以用于校验,可以作为数据卡尺,而起点数不同,而终点数相同的数据,则可以用记录总共步数的方式,来通过步数,来指定唯一起点数?
加入随机数据,就是为了让不知道算法的人没法通过非随机内容来逆推出随机内容(单一或随机是相关的情况下)?
当然了,也可以更复杂一点:
比如:
第一次是奇数,就乘以3然后+1
不管多少次,是偶数,就除以2
第二次是奇数,就乘以5然后+3
第三次是奇数,就乘以7然后+5
第四次是奇数,就乘以11然后+7
第五次是奇数,就乘以13然后+11
以此类推?
然后到达最高次数设定后,就从第N次向第(N-1)次,一直到第三次,第二次,第一次?
有么有这么一种算法,只需要取起点数,终点数,总共步数,以及起点数和终点数以外一个特殊的节点是多少(某一步是多少),记录算法,就能够还原全部数据?用算法把索引还原为所有数据?