在学校论坛看到这道题目,全忘了的感觉。

如果你是高中的,那我觉得你完全没问题。但是,在这个博客园的圈子,觉得全部人都是程(ban)序(zhuan)员(gong)相关的人员,解决这个问题有点难度,毕竟,想法已经偏了。

有句话说得好,如果你拿着一个锤子,那你看什么都像一个钉子。

因此程序员必要的时候必须转换下思路啊。程序员思维是:已知条件,求值;而不是已知 条件 和 值,求证:这求值过程不存在bug。

如果有人叫你这么证明你的程序的求值过程正确,你会不会抡起你的键(zhuan)盘(tou)就拍过去了。

我们能做到的只是,带入a=*,b=**,c=***,验证等式成立。数学题让数学家证明去吧。

下面回到高中的想法,谈谈这道题目吧:

求证:(a+b%c)%c=(a+b)%c
解:   假设等式左右边的值为 v,   则 存在整数x和y,使得下面等式成立。   a+b%c = v + xc;(左边)   a+b = v + yc;(右边)   这两式子同时成立,则可以化简为:   存在整数 z 使得 z*c = b - b%c 成立。   则证明 b - b%c 为 c 的倍数。   显然 b - b%c 为 c 的倍数。

(  感觉我自己也跑歪了,如果(b - b%c 为 c 的倍数)不是显然的话,我们还做什么程序员。

其实  (a+b%c)%c=(a+b)%c 也是显然的。)

后注:发表了出来,才发现,其实这道题跟程序员思维没啥联系。纯当胡扯。

下面是整理一楼 五岳 提供的正确方法,谢谢指导。(我的答案已经跑歪了)

假设:
  a = x*c + a0
  b = y*c + b0
  其中x,y,a0,b0∈Z,且|a0|<|c|,|b0|<|c|
  那么
  (a+b%c)%c = (x*c + a0 + (y*c + b0)%c)=(x*c +a0 + b0)%c = (a0 + b0)%c
  而(a+b)%c = (x*c + a0 + y*c + b0)%c = (a0+b0)%c
  两式相等,得证

从一道数学题弹程序员的思维:数学题,求证:(a+b%c)%c=(a+b)%c的更多相关文章

  1. 《程序员的思维修炼》摘抄start:2014年9月27日19:27:07

    程序员的思维修炼:摘抄:考虑到社会中各个相关团体的复杂交互影响和社会的持续变化,在我看来当前最重要的两项技能就是: ▪沟通能力: ▪学习和思考能力.软件行业正在逐步提高沟通能力.特别是敏捷方法(见注解 ...

  2. 《程序员的思维修炼:开发认知潜能的九堂课》【PDF】下载

    <程序员的思维修炼:开发认知潜能的九堂课>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196325 内容简介 运用一门程序设计语言 ...

  3. 用程序员的思维了解Filecoin

    程序员接触一个新技术惯用步骤: 先搜索引擎搜索一波,找个最简单的解释.如果有了个大概的概念,就前往2.否则循环1->1->1...直到有个大概的概念为止. 上官网跑一遍. 各种论坛社区溜达 ...

  4. 最初程序员的思维“修炼”之四——Android平台开发的“强制关闭”解决思路

    我和我的朋友参加一个比赛——物联网应用技能大赛,这个大赛所要求的技能有,硬件技术,Android平台开发技术,.NET平台开发技术,所以这是一个团队合作的比赛,基本上没有人能同时掌握这三种技术(在校生 ...

  5. Java入门(1) —— 变量、运算符、分支结构和程序员思维的理解

    1.计算机语言的发展史: 机器语言:机器语言是指一台计算机全部的指令集合. 汇编语言:为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进:用一些简洁的英文字母.符号串来替代一个特定的指令的二进制 ...

  6. C++程序设计之四书五经[转自2004程序员杂志]--上篇

    C++程序设计之四书五经 作者:荣耀 C++是一门广泛用于工业软件研发的大型语言.它自身的复杂性和解决现实问题的能力,使其极具学术研究价值和工业价值.和C语言一样,C++已经在许多重要的领域大获成功. ...

  7. 程序员需要的各种PDF格式电子书【附网盘免费下载资源地址】

    程序员需要的各种PDF格式电子书[附网盘免费下载资源地址]   各位,请妥善保存,后期还会有更多更新,如果你有不同的书籍资源或者这里没有你要找的书籍,也可以直接留言,后期我们会继续更新~ Java & ...

  8. 从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力

    从士兵到程序员再到 SOHO 程序员 (三) - 游击战与阻力 原文地址:http://blog.huhao.name/blog/2014/03/01/become-a-freelancer-3/ 作 ...

  9. 程序员必读的 99 本书籍 & 资源

    作为程序员,始终要保持学习,一直带着纸质书还是很不便的,因此电子书对于我们还是挺需要的.为了方便广大的小伙伴也能方便找到对应的电子书,我花费洪荒之力从各个搜索网站收集了几百本常用的电子书,找到了,我要 ...

随机推荐

  1. 腾讯2014在广州站实习生offer经验(TEG-开发背景)

    研究在过去的一年是linux 什么系统编程和网络编程.比较熟悉的语言c/c++,python只写一些测试client.是后台开发类,比方前面笔面的网易CC(面完hr后挂).大概3月15号就在腾讯 jo ...

  2. java内存分析总结

    1.自带的jconsole工具. (1)假设是从命令行启动,使 JDK 在 PATH 上,执行 jconsole 就可以. (2)假设从 GUI shell 启动,找到 JDK 安装路径,打开 bin ...

  3. 使用Visual Studio 2010写Data Url生成工具C#版本

    声明:本文系本人按照真实经历原创.未经许可,谢绝转载. 此文百度经验版本号:怎样用Visual Studio 2010打造Data Url生成工具 源代码下载:用Visual Studio 2010编 ...

  4. Kafka项目实践

    用户日志上报实时统计之编码实践 1.概述 本课程的视频教程地址:<Kafka实战项目之编码实践>  该课程我以用户实时上报日志案例为基础,带着大家去完成各个KPI的编码工作,实现生产模块. ...

  5. .NET(C#):浅谈程序集清单资源和RESX资源

    原文:.NET(C#):浅谈程序集清单资源和RESX资源   目录 程序集清单资源 RESX资源文件 使用ResourceReader和ResourceSet解析二进制资源文件 使用ResourceM ...

  6. PHP于Post和Get得到的数据写入到文件中

    有时Post要么Get越过那我们不知道什么样的形状数据,它可以是JSON格风格或只是简单地通过数据.这一次,我们能够把他写的文字,传过来的数据是什么格式了. $val = ""; ...

  7. OpenWrt arp 命令发布

    arp命令是用来查看mac与ip在消息路由器缓存表.这是一个基本的介绍了一下我就不说了. 但今天我的同事通过arp.可是在shell脚本就回显示没有此命令,我当时也感到非常费解. 于是乎.做了例如以下 ...

  8. thinkphp学习笔记5—模块化设计

    原文:thinkphp学习笔记5-模块化设计 1.模块结构 完整的ThinkPHP用用围绕模块/控制器/操作设计,并支持多个入口文件盒多级控制.ThinkPHP默认PATHINFO模式,如下: htt ...

  9. JavaScript之事件处理详解

    一.事件传播机制 客户端JavaScript程序(就是浏览器啦)采用了异步事件驱动编程模型.当文档.浏览器.元素或与之相关的对象发生某些有趣的事情时,Web浏览器就会产生事件(event).如果Jav ...

  10. 你可以不知道原因,但是,我们不能停止努力。httplook抓取路由配置界面信息

    因为实验室的项目要求,需要动态控制路由的配置信息,我们知道.路由选择需要购买的访问后,:http://192.168.1.1 路由配置页面.配置,不须要人手工操作.甚至定时任务配置的时候,就须要进一步 ...