前言:
现在我们对“布尔代数 二进制”大体比较注重,看官们都想要剖析一些“布尔代数 二进制”的相关内容。那么小编在网络上收集了一些对于“布尔代数 二进制””的相关资讯,希望大家能喜欢,各位老铁们快快来学习一下吧!考拉兹猜想(Collatz conjecture):
选择一个数字,任何正整数。如果是偶数,则将其除以2。如果是奇数,则将其乘以3再加上1。所得数字再次重复如此步骤。最终,所得结果都是为1。
首先要感谢@七零葵 ,老师的系列视频,介绍考拉兹猜想。
首先引起我兴趣的是:
著名数学家保罗·埃尔德斯(Paul Erds)关于这个猜想如是说: “数学可能还没有为解决此类问题做好准备。” 他还为解决方案提供了奖金。
杰弗里·拉加里亚斯(Jeffrey Lagarias)在2010年表示, 这个猜想“是一个非常困难的问题,完全超出了当今数学的范围”。
奖金,奖金,奖金,我要挣这笔奖金。 因为我发现,解决这个问题的数学,早已经出现了啊, 那就是——布尔代数。 我的解决方案,绝对不是像陶哲轩那样, 证明出一个带“几乎全部”、“概率”修饰词的结果。 我的结果是绝对的“真”或“假”的结果 ——布尔代数那么的真。
在绝大多数“数学家”眼里,貌似说能证明考拉兹猜想的, 都是“民科”, 特别是像我这样的,没有陶哲轩那样的数学背景的。 那我就先“低调”一点, 至少我能极大提高“计算机验证”效率,给出一个解决方案。
低调归低调,但奖金我是认真的。 此文版权归我个人所有,转载请注明作者,和出处链接。
一,
(计算机专业的,可以跳过这一段)
@七零葵 ,老师在这一期中,
也介绍了用“二进制”研究考拉兹猜想的进展情况。 我很受启发,但与我的设想是完全不同的。 我认为。视频中介绍的“二进制”是没抓住计算机原理,和布尔代数精髓的。
据视频和资料显示,现在计算机验证, 已经验证到了2^64以内的所有整数。 这个数也太小了啊。 现在的CPU都是64位的啦, 以现在CPU的算力,算2^64应该是轻而易举的啊。 算到2^128不是什么难事儿啊。
问题只在于,现在的“数学家”们,都局限在了“十进制”思维了。 整数、奇偶、除2,……都是太适合二进制、布尔代数运算啦, 乘3,也不是什么难事儿。 如果用“高级语言”,十进制编程, 就走弯路,浪费算力了。
如果用“汇编语言”,二进制,“按位操作”,效率就高多了。 一个字节,就是8位无符号整数(正整数), 2^64只需要8个字节,64位加法一次就算完了。 现在CPU,1秒大概能算1G次,也就是大约2^30次的量级。 当然了,这个运算速度,是指64位二进制数的“加法”。
“布尔代数”与常用十进制数学其实不仅仅是进制]]的区别, 关键是,“布尔代数”其实是没有“加减乘除”的, 只有“与或非”和“位移”。 “计算机”其实不会“计算”的, 只会处理二进制数列。 “偶数”,就是最低位为“0”; “加法”,就是“与”、“或”、“进位”; “除2”,就是“右移”1位, “乘2”就是“左移”1位。 “乘法”,很多时候是转化成“加法”来计算的。 例如,“”乘7”,要转化成“乘4+乘2+乘1”; “乘3”,要转化成“乘2+乘1”…… 其实,像“乘3”这么小的数,直接“加”2次是更省事的。
布尔代数是不是特别适合解决考拉兹猜想这个问题?
二,
先看看布尔代数的4、2、1循环是怎么回事儿啊。
表中的2、3、4行,就是“乘3”(自加两遍); 表中第C5单元格就是“加一”。 C列有4个“1”, 所以要“隔位进位”, ——不是在“高一位”进一,而是在“高两位”进一。 A1单元格红色的“1”就是隔位进位。
D列之后,就是运算的后续步骤。 “3n+1”之后,最低位肯定是“0”(偶数); 最低位是“0”,就右移1位,(n/2); 只要最低是“0”,就一直右移,直到是“1”(奇数)为止, 然后重复“3n+1”。……
陶哲轩说,要证明考拉兹猜想, 必须注意“3n+1”和“3n-1”的区别。 其实很简单,这里也能看得出来。“”3n-1”时,最低位是两个“1”, 只是简单进位,不会是“隔位进位”, 那就进入另外的循环了……不细说了。
三,
现在开始证明,考拉兹猜想为什么会越算越小。 因为一个二进制数列,“3n+1”后, 最高位之上,顶多再进2位。 我自己推算了最高两位为“10”、“11”时的仅为情况, 懒得做表了。 直观可证,大家可以自己算算看。
(左侧)高位最多进2位,低位最少右移1位。 也就是说,“3n+1”之后,二进制数列,顶多变长1位, 但是赶上计算结果是2^2以上(2的整次方)的倍数, 那就会右移出很多个“0”(除2好几次),变短很多。 每次“3n+1”运算之后,至少有1次以上的“n/2”。
从这个角度证明考拉兹猜想越算越小, 才是个好的”解决方案“。
现在看看那个特殊的”27“。
其实“27”也不算太特殊。它的二进制是“11011”, 关键是它经过几步运算后 得到“31”才比较特殊,二进制是“11111”。 “31”运算的最大值顶峰“9232”,二进制是“10010000010000”, 最终,从“5、16、8、4、2、1”落入循环的路径, 二进制是这样的“101、10000、1000、100、10、1”。 看清楚了吧,
其实,不止“27”一个数会达到“9232”这个顶峰, “31”显然也是…… 也不只“9232”这一个顶峰,上面还有很多这样的顶峰。 下面这张图中显现出的某种“结构”, 用二进制可能更好理解。
像不像“俄罗斯方块”,或“消消乐”? 右侧不断地排出“气泡”,可以连续排出好几个“0”; 而从左侧,每次只能续进来一个“1”; 考拉兹猜想就是要证明:最终会排得只剩下一个“1”。
四,
我是岁数大了,脑子不好使了, 除了靠点儿“灵感”的“算法”之外,“算力”是彻底的不灵了。 只能是提出“解决方案”了。 具体的证明,就让年轻人去做吧。
我只是想公布出来我的“解决方案”, 请数学爱好者评价一下, 我这不算是太“民科”吧? 是不是一个可行的新思路吧。 陶哲轩虽然牛,但是陷入了“十进制”的高等数学中, 只能靠“概率”证明出个“几乎全部”, 我这可是“布尔代数”,“绝对”逻辑的思路啊。
标签: #布尔代数 二进制