导航:首页 > 程序命令 > 程序员反证法

程序员反证法

发布时间:2025-02-14 18:48:01

㈠ 我国编程语言仓颉首发,以后是否就不会用英文写代码了

我国编程语言仓颉首发,以后肯定就不会用英文写代码了,只要开发工具和编译器可以准确解析编译中文关键字,就可以研发出来的,这只不过是需要一个时间和过程而已,让我们拭目以待吧!

为了让中国用上自己的汉字编程,华为发布鸿蒙编程语言‘仓颉’,用汉字编程语言。那么以“仓颉”命名,主要因为中国方块字、象形字创造者是“仓颉”,有很多人因为这个名字对这门编程语言进行推测的,认为很有可能是纯汉字和纯中文的编程,假如真的是全汉字,就会解决对很多英语并不熟练的认识。又想入门编程的需求,也有人推测真的是汉字编程,那肯定使用华为方舟编译器来进行的中文字符的编译。

4,中文编程语言是封闭的,绝对不是华为世界级高科技公司的主要选择,与华为爱国与否根本没有必然联系,更与我们国家持续加大改革,开放力度和构建人类命运共同体趋势不合拍!

我以为以上的言论不足以为道,当然还有不同的观点。但很多人都人认为:我国编程语言仓颉首发,以后就不会用英文写代码了。最后我用一个网友的发表的评论作为结束语吧!编程只是用关键字遵循一定格式,组织逻辑,为什么不能用中文?只要开发工具和编译器可以准确解析编译中文关键字,各种符号和格式,最终解析出来的还是机器码!为什么不能用中文?

程序员的数学-读书笔记

计数法分为 按位计数法 罗马计数法
按位计数法常用的有2进制、8进制、10进制、16进制等几种。

理论上多少进制在数学上都可以存在,玛雅人用20进制,巴比伦人用10进制和60进制的混合计数法。玛雅人20进制可能是和手脚趾加起来的数量有关。巴比伦人采用60进制也可能是因为记录数字的黏土版比较难记录文字记号,为了在大数的书写上少占位便采用了60进制。
从这一点来看,环境对文明和文化的形成真的是有决定性的影响。假如巴比伦人掌握了造纸术或者在竹子上书写文字的话,60进制这种违反人类天性的计数方法一定不会出现。话说,汉莫拉比法典就是写在黑色的玄武岩上的。能够记录的文字也就屈指可数吧。

作者提到了其实人也是可以采用2进制计数法的,可是同样大小的数字用2进制书写起来位数太多,一来书写不方便,二来计算时易发生马虎出现错误。而10进制的数天生就是顺应人类人性的,即使是幼儿也可以通过数手指头的方式来计数。
相反对于计算机的物理构造来讲,0代表开关断开,1代表开关连接,这种二极管的物理限制正好决定了计算机较为适用2进制。不过如果你想做出一个10进制的计算机也不是没有可能的。

这一章比较有趣的是罗马计数法,我以前也没有接触过超过20的罗马数字,也不知道罗马数字各个数位上的数字相加之和为数字本身所代表的量。例如:

反观阿拉伯数字

由此引发作者在两个程序领域上的思考:

关键词:真值表、文氏图、逻辑表达式、卡诺图、三值逻辑、完整性、排他性

- 能够判断对错的陈述句叫做命题(proposition)

逻辑非 --不是A

逆命题

逆否命题

德摩根定律

卡诺图 (二灯游戏、三灯游戏引出)

未定义逻辑(undefined)

三值逻辑的德摩根定律

本章探讨的是通过余数来解决存在规律、周期性的问题。通过规律和周期性的重复,将大问题简化成容易解决的小问题。

首先作者通过解决星期几问题,引入了余数的思考概念。

上面的问题在 大问题通过余数规律简化为小问题 这个方法上表现的还不明显,于是引入了第三个问题:1234567^7654321的个位数是多少。

以上三个问题是小学奥赛便涉及到的问题,然而其思想在解决真实面对的复杂问题或具象的实际问题时却很好用。

将一个数字除以2,他的余数应该为0或者1二者之一。我们也可以叫 奇偶问题
书中有几个案例:

这样分析过来就很好解决七桥问题,确定每个点所连接的桥的点数,与上述结论做对比。
A点为3,B点为,C点为3,D点为3.
由此可以得出七桥问题不可能实现。这个问题的解决也是通过奇偶性来解决的。

作者举了高斯求和的故事来讲如何用数学归纳法来解决无穷数列的求和问题。
两个小例子便是从0开始到N的和,以及1开始的奇数和。

数学归纳法 是证明[ 有关整数的断言对于0以上的所有整数(0,1,2...)是否成立 ]所用的方法。
证明方法归结为两歩:

根据上述方法,假若某个假设成立,那么P(0)成立,因为P(0)成立,所以P(0+1)即P(1)也成立。反复如此,对于无穷数列遵守这个规律的证明,就像多米诺骨牌,推到第一个,后面的都会按照第一个的规则倒下去。

然而要避免整个证明出错,就要重视第二个步骤,也就是归纳。归纳在证明时一定要考虑 是否在所有定义条件下均成立 ,尤其要注意的是在P(0)的条件下是否实现。

课后对话很有意思:

计数是人类每天生活都要运用的方法。
计数的关键就在于 注意“遗漏”和“重复”
例如:

综上,在计数时要发现事物的规则。
认清计数对象的本质
认清计数对象的本质
认清计数对象的本质
重要的事情说三遍。

将计数对象进行 归纳总结 ,使其作为普通规则来掌握。这样一般不容易出错。

接下来,作者在 加法法则 里写到:

乘法法则 的概念比较有意思。

接下来,本章提到了置换、排列、组合3个概念。以下是几个小例子。

最后提到的 重复组合 里的思考问题比较有趣。

解答的思想是:

这是一种典型的将复杂问题简单化,并规律化的解答方法。

最后还是要强调下:
认清计数对象的本质

递归与归纳的区别

归纳(inctive) 是从个别性前提推出一般性结论。

本质上都是 将复杂问题简化 ,但方向不同。
个人理解是

递归是发现第n项和前一两项之间的关系,实证确定后,往回不断递推的一种个别性结论。
即这个结论不是在n为任何自然数时都成立的。需要注意n为0和1的两项。

通过递归解决问题的线路是: 找到递归结构——建立递推公式——找到解析式(只带n的式子) ,如果不能以解析式的方式描述递归结构,也可以用递推公式的方法描述。如下图所示的汉诺塔的递推公式:(它也可以描述成解析式的方式)

归纳所谓的个别性前提是指

斐波那契数列就是运用了递归的思想。通过研究和思考复杂问题,抓住事务本质,得到f(n)=f(n-1)+f(n-2)

所以当我们想要用递归的方法解决问题时,注意思考第n元素与前后元素的关系。由一个点推开,成一条贯穿始终的线。

利用帕斯卡三角形来研究Cnk=Cn-1(k-1) + Cn-1k的思考方式另辟蹊径。将两个加数假设成组合问题里含一个元素和不含那个元素的两个情况。从而证明了式子。利用的便是组合的数学分析法。(这句话组合的意思不是数学意义上的)。

所以以上将复杂问题简化的方法是递归解法之一,是为了在复杂问题中找到隐含的递归结构。其思路是:

通过思考一张1mm的纸,折多少次能够有地月距离那么厚,作者引出指数的概念。

这一章的内容比较简单,对于 指数爆炸 大家应该都不陌生。而 对数 估计也很熟悉。之前接触到的汉诺塔问题的解析式和斐波那契数列都属于指数的范畴。

然而在解决 测试所有设定选项的程序时,检查次数也是一个指数问题 。所以我们应该如何轻松的解决这类问题呢?

利用二分法查找

利用二分法,先询问最中间的人,如果在左边,就继续在左边的范围内重复此项方法,直到找到罪犯。这便被称为 2分法 。他和汉诺塔的解析式如出一辙,可以利用指数原理经过很少的步骤便可找到目标。

二分法本身也是 递归结构 ,经过n次询问,可以在2^n-1人中确定目标。每判断一次就可以查找近一半的对象。
二分法需要注意的是,所有元素一定要 按顺序排列 ,这点至关重要。

指数思想也被用于加密的实现中。因为每多加密一位,暴力破解就需要指数次的运算能力的提升。原则上有限时间里根本不可能破解。指数以其数字的巨大增长能力在加密领域有基本性的作用。

对于指数问题的解决方法,主要有4种,但均不太容易应付规模大的数字。

作为指数函数的逆函数,文章涉及了对数。同时也简单介绍了古代科学家用过的计算尺。

无穷可以分为 可数无穷 不可数无穷
所谓 可数无穷 是指 可以按照一定的规律或者表达方式来表达
即集合中所有元素都与正整数一一对应。如果每一个元素都可以与1.2.3....等数字对应,也就是说可以按规律表达出来就是可数无穷。
例如:

所以有不可数的集合吗?
此时运用到了 对角论证法 反证法(也叫归谬法)
假设我们要证明 所有整数数列的集合是不可数的 ,那么反证就是 假设所有整数数列的集合是可数的 ,此处是运用的反证法。
现在我们按下图的方式来列出所有整数数列,编号为k的整数列在表的k行。

如果按照图中第k行的第k个元素ak单独组出一组数列{a1,a2,a3......}的话,他也是应该包含在所有整数数列里的,然而并没有,他是游离在所有整数数列之外的。此处得出矛盾,说明命题错误,命题 所有整数数列的集合是不可数的 为真。此方法被称为 对角论证法
除此之外
-所有实数的集合是不可数的
-所有函数的集合也是不可数的

随后书中讨论到了不可解的问题
对于不可解的问题的定义是

事实上,不能写成程序的函数是存在的。
有些函数不能用文字表达,而且要写成程序的函数必须 严谨定义确切和文字表达 两个概念。

停机问题
不可解问题的一例。定义是

有限时间并不指时间长短,而是指无论耗时多长,只要能有终止的一刻就好。
事实上,程序本身并不能判断某一程序是否可以在有限时间内结束运行
所以停机问题也是 不可解问题 之一。

这一章是对之前8章的回顾和总结。

前几章作者分别对 0的意义、逻辑、余数、数学归纳、排列组合、递归、指数爆炸、不可解问题 进行了简单的介绍和探讨。其实所有的章节最后都是在引领读者产生如何解决问题的思考。

1.认清模式,进行抽象化

2.由不擅长催生出的智慧

3.幻想法则

本书比较适合作为第一本接触算法的书籍。目前开始在上 Khan的Algorithms ,9月份跟上 coursera的Algorithms Part I 的开课。

前方的路注定不好走,但是要慢慢尝试和坚持。

㈢ 北京大学哪些专业毕业之后不愁找工作

现就读与北京大学一个就业相当困难的院系,但是还是硬着头皮,以及强忍着对其他专业的羡慕回答一下这道题。(不推荐自己的专业啊,自己的专业是科研导向的,不是就业导向的,就不说了)

1、医学院

职业发展路径还是挺清晰的,本科→研究生→医院,基本上只要自己对医生这个职业没有太大的排斥,学习努力,专业能力过得去,绝对是不愁找工作的,只是年轻的时候可能会比较累一些,但医生社会地位真的是挺高的。

㈣ 电脑算命到底准不准呀

我在知道里面提问的时候人家给我推荐的博客里刚好又这么一篇文章讲电脑算命的事情的,我感觉说的非常好,在这里转发一下吧!

============================================

江南易林 - 人脑算命与电脑算命谁更准确
(双击滚屏,单击停止)作者:江南易林 提交日期:2007-3-20 22:27:00 | 分类: | 访问量:65
人脑算命与电脑算命谁更准确
原创作者:江南易林 Email:[email protected]日期:2007年3月20日
江南易林博客: http://easylin.tianyablog.com
转发江南易林文章请务必注明“原创作者:江南易林”字样

随着计算机和网络的普及,越来越多的人可以很方便的上网了。那些相信并且喜欢周易和算命的朋友可能会经常会听到一个词语:电脑算命。
似乎有很多做生意的人都喜欢把自己的生意与电脑挂钩,好像什么东西一同电脑扯上点关系就算是高科技了一样,比如电脑洗车,电脑喷漆,电脑干洗等等比比皆是,其实这里面很多炒作成分。
现在我来详细探讨一下人脑算命与电脑算命的差别和准确性问题。
电脑的特点是运算很快,存储容量大,处理那些重复性的繁琐的任务得心应手。比如我们发短信,从基站(j经过空中接口)到交换机再到短信中心,要经过很多程序软件的处理,像中国移动中国联通这样的大运营商,一天的短信量数以亿计,如果是人工来处理是完全不可能的。(原创作者:江南易林)
程序能够处理复杂的任务,但是它的“智商”远远不如人类的大脑,人工智能也远不如人的大脑能力。程序要干一个活儿,你必须告诉它每一步如何做,如果是计算性的问题,你必须告诉它每一步的公式。换句话说,你事先必须设计好如何如何做,电脑只能照章办事。(原创作者:江南易林)
那么电脑程序是如何推算人的八字的呢?
开发程序的人必须先定义好各种规则,每种规则对应一条或者几条断语。电脑按照公式或者从数据库中生成一个人的八字之后,它就开始分析八字,把八字中的天干地支逐条的与规则库中的规则进行匹配,一旦匹配到一条规则就打印这条规则对应的断语。
这样说似乎很抽象,让我来举一个很形象的例子。假设我们要编写一个用中医来诊断人疾病的程序。大家知道中医诊断的诀窍是“望闻问切”,但是这些很难量化,很难总结成公式。这很像八字,每个八字的情形都不一样,日干(就是说八字)是旺还是衰,很难定量,八字的喜忌情况也很微妙,很难有什么公式。但是计算机程序却不管这些,你既然想要让它来给人诊病,你就必须为它定量,你可能会制定以下规则(规则是我随便编的可能不合医理,仅供举例用):
1. 眼睛发黄的人有肝病。(原创作者:江南易林)
2. 每天的尿超过2000毫升的人膀胱不好
3. 脸色红润的人身体健康。
4. 体重超过180斤,有脂肪肝。
5. 心率小于50,身体完全健康。
等等。
有了这些规则,电脑开始根据输入的照片和数据,一条条来匹配规则。如果它发现这个人体重大于180斤,它马上输出一条断语 “此人有脂肪肝”,如果再发现该人每天的尿为2100毫升,于是屁颠屁颠的打印一句 “该人膀胱不好”。
如果这人正好的确膀胱不好,他可能会惊讶的竖起大拇指说道:电脑算命,神了!真准!但是你想过没有,很多时候,用电脑算命会得出绝然相反的结论。
比如,一个人的尿的确很多,同时心率小于50,电脑可能有两条断语:一条说人家膀胱不好,一条说人家身体完全健康。但实际上这个人很可能是个运动员,每天运动量大,喝的水多,尿当然也多了。(原创作者:江南易林)
电脑推算八字与这个例子几乎完全相似,程序看到一个规则就来一条断语,不会像人一样综合分析,更别说象人一样根据经验来联想,或者灵活机动的全盘分析,或者突然来一个灵感。它只能老老实实按照设计程序的人实现设计好的规则来匹配。写这个算命程序的人的八字水平首先值得怀疑。实际上既精通电脑又精通八字的人并不多。
但是,尽管电脑算命很笨拙,很机械,准确率不高(基本上只能碰对一些非常典型的情况),但是电脑算命程序对算命者(注意是对算命者,对于那些不懂八字算命的人,就不能指望利用它了)而言,还是很有作用的:
1. 电脑程序可以帮算命者排八字盘。如果让我们手工去排八字(包括推算十神、神煞、大运、流年等等),不仅费时费力还容易出错。这部分工作完全可以交给计算机来做。
2. 很多需要死记的东西可以让电脑来记,比如很多断语。事先存到电脑中,方便算命者需要的时候查阅。
3. 电脑中可以嵌套各种电子书籍和工具。比如,电脑程序中可以包含一个万年历,包含各种八字书,查阅起来很方便。
可能还有其他好处,就不一一列举了。(原创作者:江南易林)
需要说明的是,如果开发设计程序的人既精通八字又精通程序设计,并且很重要的,还精通形式语言、人工智能和机器学习等理论的话,那么他开发出来的程序可能就比一般的程序聪明多了。但是即便是这样的程序得出来的结论还是需要人工修正的,正确性还是有限。并且,这种人才实在凤毛麟角。大家都知道,前几年炒作的下国际象棋下赢了国际大师的“深蓝”,那可是大型的人工智能超级计算机,记录了大量的超级大师的棋谱,但是国际象棋毕竟变数少,如果是下围棋,在相当长一段时间内,电脑是不可能下过人脑的。(原创作者:江南易林)
一句话,人脑才是真正的万能。人的思维的速度比计算机快多了。人的大脑真正得到开发利用的只是人的脑容量中很小的一部分,即便如此,人脑还是远胜于电脑,尤其是在那些涉及到需要创造创新的事情,电脑是不会去发明一个什么东西的。它只能按照既定的规则和输入信息来输出一定的结果。
所以大家以后在网上算命或者发短信算命,偶尔遇到电脑程序碰巧算对了一两条,你最好不要惊奇的大喊“电脑算命真神真准!”,千万不要一个大活人被程序忽悠了。
顺便再用我以前提过的反证法证明一下(这个方法希望大家平时多思考多用),如果这个算命程序真的很准,那么写这个程序人的何必要以几十块钱的价格把程序卖给你?难道他是白痴? (如果他是白痴,写的程序肯定是垃圾)难道他自己不会用他的程序来算命?或者如果它真准,你买来这个程序去帮人算命,那你岂不是发大财了?
所以,对于电脑算命,不要太执着,不要太认真,权当作游戏娱乐罢了。(原创作者:江南易林)


阅读全文

与程序员反证法相关的资料

热点内容
ftp命令转换 浏览:135
解压文件为什么老是不动 浏览:452
手机电视直播网站源码 浏览:106
粉笔app在哪里看真题 浏览:597
php获取url中的参数值 浏览:65
dna服务器是什么 浏览:975
pdf图片旋转的 浏览:200
我的世界服务器总断开怎么回事 浏览:406
使用python编写员工信息管理系统 浏览:598
程序员接私活设计费用怎么评估 浏览:154
怎么查询服务器mac地址 浏览:87
什么app看nba直播 浏览:402
ic卡无加密和有加密的区别 浏览:667
51子系列单片机机型 浏览:168
java创建文件代码 浏览:660
天下pdf 浏览:327
产后缓解压力的瑜伽 浏览:241
单片机音乐盒按键系统 浏览:108
魅族最强程序员 浏览:993
java赋值null 浏览:54