程序员的数学之余数:星期数的思考
2013-08-10 10:56
821 查看
课前对话
老师:奇数是什么?学生:是1,3,5,7,9,11...
老师:对!奇数就是被2除余1的整数?那么偶数呢?
学生:能被2整除的整数
老师:正是!偶是就是被2除余2的整数。
学生:这其中有何奥妙呢?
老师:除法就像分组 学生:分组?
老师:根据余数来确定它属于哪个分组。
思考题一
今天是星期日,那么100天以后是星期几?【思考题答案】
一周有7天,每过7天,便循环到相同的星期数。如果今天是星期日,那么7天后、14天后、21天后。。。这种“7的倍数”都是星期日。答案是星期二。【应用余数思考】
假设今天是星期日,100天后的星期数就是100除以7的余数。因此100天后是星期二。
余数的力量-将较大的数字除一次就能分组
但是如果问题改成求1亿天后的星期数的话,靠数数就解决不了问题了。即使1秒能数一下,数到1亿至少也要话费3年以上的时间。而如果运用余数的话,很快就能 算出来。100000000%7 = 2。因为余数是2,所以1亿天以后是星期二。星期数思考题二
这次我们来挑战稍微难一点的星期思考题。今天是星期日,那么100^100天后是星期几?
可以直接计算吗?
如果能像求100天以后的星期数那样,用100^除以7的余数来计算就好了。但实际上数字太大了。计算起来相当费力。即使借助计算器也很难完成。那么这道思考题有没有周期性呢?请寻找它的规律。
思考题答案
我们并不急于求出100^100次方,而是像1,10,100,1000,10000 。。。这样,一次增加0的个数,观察其规律。0的个数 | ||
0 | 1%7 = 1 | 1 |
1 | 10%7 = 3 | 3 |
2 | 100%7 = 2 | 2 |
3 | 1000%7=6 | 6 |
4 | 10000%7=4 | 4 |
5 | 100000%7 = 5 | 5 |
6 | 1000000%7 = 5 | 1 |
7 | 10000000%7 = 5 | 3 |
8 | 100000000%7 = 2 | 2 |
9 | 1000000000%7 = 6 | 6 |
10 | 10000000000%7 = 4 | 4 |
11 | 10000000000%7 = 5 | 5 |
12 | 100000000000%7 = 1 | 1 |
【回顾】规律和余数的关系
从上面2个题目可以看出,有时候庞大的数值不能计算,可以先用小的数字进行试算。这时的要点是要找出规律。只要找出规律,剩下的问题就可以通过余数来解决。作者
出处:http://www.cnblogs.com/gina本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
相关文章推荐
- 程序员的数学 - 余数 - 周期性与分组 - 阅读小结
- 数学是一种思考方式
- 一个程序员眼中的团队原型思考
- 浅谈程序员的数学修养
- 浅谈程序员的数学修养
- 一次因为游戏程序员猝死引发的思考
- 优秀程序员思考、学习新技术的原则和方式
- 数学和英语不好,能当程序员吗?
- word2vec中数学原理详解以及原理思考
- 程序员思考
- 程序员怎样学数学
- 程序员的思考:一年管理成富翁,三年市场路路通,十年技术一场空
- 程序员职业发展的思考
- [转]一个程序员的哲学思考(关于编程、关于人生)
- 程序员职业思考与规划 --- 程序员如何快速学习一项新技术
- 一个程序员的价值思考与建构
- <<什么是数学>> 余数那些事儿
- 程序员的数学(二)—— 逻辑,真与假的二元世界
- 浅谈程序员的数学修养
- 一个30岁程序员的对于中年危机的思考和应对