科学网

 找回密码
  注册

tag 标签: 计算机编程

相关帖子

版块 作者 回复/查看 最后发表

没有相关内容

相关日志

廉颇老矣尚能编程否?
热度 1 accsys 2017-8-11 05:22
廉颇老矣尚能编程否? 七十二岁,还能够自己编写计算机程序否?可,只要科学安排自己的体力。 为了向学界证明我的子句消去法能够完备地求出 3-SAT 问题满足解,我不得不拼了老命,自己编写计算机程序。因为这种计算机科学的最大问题,只有通过计算机程序的验证,才能够有效地说明我的发明创造的正确性。 我先用数据库 VFP 编写了子句消去法程序,因为用表结构最能够方便地展示和说明子句消去法求 SAT 问题满足解的正确性。今年初,这件事做好了。后来网友给我了具体的 3-SAT 问题,那是一个密码破译的实际问题,有 2 万多个逻辑变量和 100 多万个子句。这是实用问题,用只能够表示 254 个变量的数据库表,不可能担此重任。 为了能够让我的子句消去法展示巨大的威力,我不得不用 C++ 来完成使命了。说实话,我自己事先都做了牺牲的准备。计算机程序设计的繁重程度,搞计算机程序设计的人都知道,在编程的过程中发生猝死的事件,以前不在少数。 还好,遵照 “量力而行”的原则,经过一个多月的时间,子句消去法的 C++ 程序居然被我设计完成了!当然,这个程序去参加 SAT 世界大赛,还需要进一步优化,这个工作将来可以让我的学生来做。 通过这次经历,我的体会是 “老廉颇也可以编程,只是要悠着点!” 老年人丰富的研究经验是贵重的财富,当年轻人上不去当时候,也只有亲自上阵了。否则会有什么办法呢? 姜咏江 2017-8-11
个人分类: P/NP问题|4016 次阅读|3 个评论
两则答疑:1.关于信息,2.关于协同。
geneculture 2015-12-26 08:32
1. (2015-12-26 08:22邹晓辉科学网答疑):要正确理解信息这个词的含义和用意,必然涉及跨学科、跨领域、跨行业这样的大跨度的思维转换。举例来说,《通信的数学原理》(被称为:信息理论,简称:信息论)如果不被误解,那么,它就是纯形式化地统计分析,因此,可应用于任何存在概率的研究领域。再一个典型的例子,《可计算数(原理)》(被称为:计算理论,又称:递归论)也属于纯形式化的数学研究领域,由于它所描述的图灵计算机已经物理化为实用的数字计算机,因此,凡是计算机辅助(以软件产品的形式体现)或计算机编程(以软件服务的形式体现)可以涉及或渗透的领域,都有其或隐或现的身影。上述两个数理科学的典型,与图书情报信息(操作层面的)和信息哲学(思辨层面的)以及语义信息或语用信息(语言学与信息学发生交叉的复杂系统层面的)等几个领域的思考范型是相当不同的(关于什么是信息的不同见解主要发生在这三个领域也就是可以理解的了)。 2. 关键词:自组织;协同。提示:协同与自组织的联系十分突出。自组织区别于他组织(通常被人们所说的组织其实主要是他组织)。教育和管理的最终目的是:自我教育和自我管理,在这两种情况下,教管主体是完全协同的。教管活动的迭交与协同最终可归结为教管主体的迭交与协同。思想政治教育和思想政治工作管理追求的极致应当也是自我教育和自我管理,可以说,一旦达到了自我教育和自我管理的程度或境界,离政治文明也就不远了。
个人分类: 生活点滴|568 次阅读|0 个评论
大道至简:雅俗共赏
geneculture 2015-4-2 10:21
能读懂这四张图解的,在智能化协同网络的新的格局背景之下,必能领略超傻编程的快乐先机。在第一路径的情景之下,谁发现一个好的算法,谁就有可能成为计算机科学的理论高手,如果谁再能把该算法与相应的数据结构巧妙结合,那么,他就有可能成为计算机科学的实践领域即人工智能技术得以体现的计算机编程技术的高手。现在,有了第二路径,不仅有了超傻编程的可能、条件和环境,而且,还有可能发现并把一系列或者若干个奇思妙想的算法在特定的数据结构中自动记录下来。换句话说,这就意味着,几乎人人都可参与到以往在第一路径只有极少数人才能参与的计算机编程工作。其作用、价值和意义,各位可尽情地发挥想象去自由驰骋都不为过!--邹晓辉Geneculture 注:图1公开发表于2005-2007之间。图2公开的时间以科学网的文本记录时间为准。图3首次亮相是我应邀在北京交通大学给研究生的学术专题讲座上为了通俗直观起见而特意增加了四朵云框内的文字解释。图4公开发表时间以国家知识产权局的发明公报的时间为准。 •a 融智学导论 2013(4) http://dept.cugb.edu.cn/szxy/?info-622-1.html •b 言和语的关系及其应用价值 2013(6) http://hanyu.ecnu.edu.cn/s/59/t/66/15/c9/info71113.htm •c 两大类形式化方略 2013(9) http://www.cnki.com.cn/Article/CJFDTOTAL-JYRJ201309055.htm •d 广义双语信息处理 2014(4-9) http://d.g.wanfangdata.com.cn/Patent_CN201410157262.9.aspx
个人分类: 学术研究|957 次阅读|0 个评论
纪念 互联网之子Aaron Swartz
augustwang 2014-10-4 13:05
最近看了一部纪录片,The Internet's Own Boy: The Story of Aaron Swartz. 讲述的是计算机编程天才Aaron Swartz致力于互联网资源共享与自由获取、反对网络审查,却在最有张力的年龄结束了生命,他是传奇的,又令人心碎。出生于1986年,结束在2013年,仅仅27个年华,但却做了别人或许几十年都做不来的事情,在教育构建、公众资源获取方面有着自己的理解,正是他的努力和号召,才使得美国起草的《 Stop Online Piracy Act (SOPA)》法案得以收回,该法案可能会威胁到自由言论和创新,由于一篇博客或者网页,而使得法律阻止对整个互联网的获取。 几乎和所有的计算机天才少年一样,个性张扬,从不循规蹈矩,孩童时代就表现出非凡的编程天赋和对计算机无止境的痴迷,这时候的他是快乐的,充满了质感。 13岁的时候就在线编程,参与简易信息聚合RSS1.0版本建立,就读Stanford大学,很快就创建了属于自己的公司Reddit, 这时候的他是闪耀的,是整个硅谷最值得期待的宠儿。 卖掉初创公司之后,曾短暂在硅谷公司工作,但很快远离商业市场化流程作业,远离了资本与镁光灯。后来也有人评论道,正是Aaron远离了公司资本市场,才使得Aaron不能成为伟大公司的标志人物,如Microsoft,Google, Facebook,也不能拥有富可敌国的财富,尽管他拥有不亚于他们的才华。或许,这也是Aaron的个性和气质吧,有点瘦弱的身躯,有点犹太民族的智慧。他曾说过,他的目的是使世界更美好(哇,这几乎是每个天才的标准语录)。或许他有点网络骇客的特性,有点太理想,或许他应该积累到令人颤抖的影响力(伟大公司+巨额财富)后,再去实现自己的改变世界。可是谁又能保证自己在积累财富的过程中,不会忘掉初衷,不会变成阻碍世界更美好的因素呢? 或许Aaron不应该那么早结束生命,才27岁,相对于其他人的人生才刚刚起步,或许Aaron有很多我们无法想象的压力或者其他,只希望我们好好珍惜发扬他留给我们乃至全人类的遗产,他的好奇、创造力、才华。 Aaron's commtment to social justice was profound, and defined his life. He used his prodigous skills as a programmer and technologist not to enrich himself but to make the internet a fairer, better place. His deelply human writing touched minds and hearts across generations and continents.
3532 次阅读|0 个评论
[转载]覆盖重载隐藏
EnergeticYi 2013-9-7 15:52
C++中重载,覆盖,隐藏的区别 彭海 发表于2009年05月14日 19:24 阅读(0) 评论(0) 分类: 计算机学习 举报 写正题之前,先给出几个关键字的中英文对照,重载(overload),覆盖(override),隐藏(hide)。在早期的C++书籍中,可能翻译的人不熟悉专业用语(也不能怪他们,他们不是搞计算机编程的,他们是英语专业的),常常把重载(overload)和覆盖(override)搞错!   我们先来看一些代码及其编译结果。   实例一:      #include stdafx.h   #include iostream.h   class CB   {   public:     void f(int)     {        cout CB::f(int) endl;      }   };   class CD : public CB   {   public:      void f(int,int)     {       cout CD::f(int,int) endl;     }     void test()     {      f(1);     }   };  int main(int argc, char* argv ) {  return 0; }   这么写当然是没问题了,在这里我不多费口舌了,这是很简单的,多态,虚函数,然后什么指向基类的指针指向派生类对象阿,通过引用调用虚函数阿什么的,属性多的很咯,什么??你不明白??随便找本C++的书,对会讲多态和虚函数机制的哦!!   这种情况我们叫覆盖(override)!覆盖指的是派生类的虚拟函数覆盖了基类的同名且参数相同的函数!   在这里,我要强调的是,这种覆盖,要满足两个条件  (a)有virtual关键字,在基类中函数声明的时候加上就可以了  (b)基类CB中的函数和派生类CD中的函数要一模一样,什么叫一模一样,函数名,参数,返回类型三个条件。   有人可能会对(b)中的说法质疑,说返回类型也要一样??   是,覆盖的话必须一样,我试了试,如果在基类中,把f的声明改成virtual int f(int),编译出错了   error C2555: 'CD::f' : overriding virtual function differs from 'CB::f' only by return type or calling convention   所以,覆盖的话,必须要满足上述的(a)(b)条件   那么如果基类CB中的函数f有关键字virtual ,但是参数和派生类CD中的函数f参数不一样呢, 实例三: #include stdafx.h #include iostream.h class CB {  public:    virtual void f(int)    {      cout CB::f(int) endl;    } } ; class CD : public CB { public:    void f(int,int)   {     cout CD::f(int,int) endl;   }   void test()   {      f(1);   } } ; int main(int argc, char* argv[]) { return 0; } 编译出错了, error C2660: 'f' : function does not take 1 parameters   咦??好面熟的错??对,和实例一中的情况一样哦,结论也是基类中的函数被隐藏了。   通过上面三个例子,得出一个简单的结论 如果基类中的函数和派生类中的两个名字一样的函数f 满足下面的两个条件 (a)在基类中函数声明的时候有virtual关键字 (b)基类CB中的函数和派生类CD中的函数一模一样,函数名,参数,返回类型都一样。 那么这就是叫做覆盖(override),这也就是虚函数,多态的性质 那么其他的情况呢??只要名字一样,不满足上面覆盖的条件,就是隐藏了。 下面我要讲最关键的地方了,好多人认为,基类CB中的f(int)会继承下来和CD中的f(int,int)在派生类CD中构成重载,就像实例一中想像的那样。   对吗?我们先看重载的定义   重载(overload):   必须在一个域中,函数名称相同但是函数参数不同,重载的作用就是同一个函数有不同的行为,因此不是在一个域中的函数是无法构成重载的,这个是重载的重要特征   必须在一个域中,而继承明显是在两个类中了哦,所以上面的想法是不成立的,我们测试的结构也是这样,派生类中的f(int,int)把基类中的f(int)隐藏了   所以,相同的函数名的函数,在基类和派生类中的关系只能是覆盖或者隐藏。   在文章中,我把重载和覆盖的定义都给了出来了,但是一直没有给隐藏的定义,在最后,我把他给出来,这段话是网上google来的,比较长,你可以简单的理解成,在派生类域中,看不到基类中的那个同名函数了,或者说,是并没有继承下来给你用,呵呵,如实例一 那样。    隐藏(hide): 指的是派生类的成员函数隐藏了基类函数的成员函数.隐藏一词可以这么理解:在调用一个类的成员函数的时候,编译器会沿着类的继承链逐级的向上查找函数的定义,如果找到了那么就停止查找了,所以如果一个派生类和一个基类都有同一个同名(暂且不论参数是否相同)的函数,而编译器最终选择了在派生类中的函数,那么我们就说这个派生类的成员函数隐藏了基类的成员函数,也就是说它阻止了编译器继续向上查找函数的定义
2 次阅读|0 个评论

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-16 14:59

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部