找回密码
 欢迎注册
查看: 14|回复: 0

[提问] 如何确认算法的正确性

[复制链接]
发表于 6 小时前 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
如何才能确认软件的正确性?
我想做数据恢复找回以前的文件。A盘恢复出来的数据存到B,我有十几个硬盘都需要恢复数据。不删除多余的文件有可能存不下。

我怕删除重复文件,把单独文件给删了。实际上有现成的软件却不敢用。

不了解软件的算法,通过有限的抽样测试能检验软件功能是否完全正确吗?

不了解软件的算法,无法用有限的抽样测试检验软件功能是否完全正确。要保证完全正确可靠,必须要有原理的说明。但是到哪里找到原理的说明呢?总是为此担忧哦。放不下。汇编代码是公开,设计原理有的也是公开的。汇编也要人工从头到尾判断分析吗?阅读汇编就能掌握其技术原理吗?

据我所知对于比较复杂的算法,只看汇编,不掌握原理,或者不看解释说明,不是那么容易就弄懂功能,求解问题的。汇编代码的输入输出是清楚的,是否符合求解的问题也是清楚的。有专门的形式证明。保证覆盖全部的可能性,和执行路径。

部分算法的证明需要前沿数学,状态空间也是爆炸性的。

能论证算法吗?不说明问题,能弄清所解问题为何?

复制移动文件,如何才能保证转移数据的过程中不会出现数据丢失,篡改,覆盖等?难道用户都要看到操作系统的代码才能放心?

扫描一本几百页几千页的书,难道还要完成以后一页一页的查看吗?

输入大批数据处理或者输出大批的数据,难道每一个结果都一一核对吗?保存大批的数据,每一个文件都一一测试吗?自动化检验,数据规模太大,花费的时间空间太多。抽样不能覆盖全部情况。

如何防范程序员在程序里添加漏洞?有人能看到汇编。复杂的功能时间和存储容量消耗的大。汇编也要人工从头到尾判断分析吗?

就是有办法弄清软件的正确性,又有谁会为此付出劳动呢?

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-8-29 23:37 , Processed in 0.022055 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表