在一本杂志上看到一个面试的数学题目,很简单,用程序实现获得两个整数的最大公约数的算法。离开数学太久了,猛一看下去,没有一点概念,首先得弄清楚什么是公约数,回想一下,嗯,原来这就是公约数。就想怎样才能求得最大公约数,比较笨的方法就是先得出两个整数的所有公约数,然后找到那个最大的。这是个笨方法,但也能实现预期的结果。杂志中给出了一个非常简洁的方法,欧几里德算法,简单得还是有一点不太明白:
java 代码
- int
gcd(
int
m,
int
n) {
-
if
(n==
0
)
return
m;
-
return
gcd(n, m%n);
- }
是如此的简单,根据欧几里德算法,通过递归实现了目的,首先用小的数对大的数取余,如果余数是零,那么两个数相同,或者这个较小的数就是它们的最大公约数,如果余数不为零,则继续用这次计算得出的余数对两个整数中比较小的数取余,如果余数为零,则这个比较小的数为最大公约数,如果余数不为零,则继续用本次的余数对上次获得的余数取余,如果余数为零,则上次计算得出的余数则为最大公约数,如果不为零则继续递归,直到得出最大公约数。
考官的意图就是考察面试者的思考能力,所以也就选择了那个用这种方法实现算法的应试者。结果考官也的确实现了他的目的。不过有多少人能够想到这个方法呢!
还有一道题目是我经历过的,计算所有小于100000的素数。这也是一个技巧的问题。首先弄明白了什么是素数,素数是只能被1和它本身相除的整数。实现的思路是,从2开始,假如一个数能够被小于他的一个素数整除,则该数不是素数,否则是素数。根据这个思路只要通过一个嵌套循环,对小于100000的数进行一个循环验证,看看它能不能被小于它的所以的素数整除。
-
List zNums(
int
m) {
-
List zNums =
new
ArrayList(); // 这里zNums 范型为Integer,但是由于编辑器的原因无法加入
-
zNums.add(
2
);
-
boolean
b =
true
;
-
for
(
int
i=
3;
i
< m; i++ )
-
b =
true
;
-
for
(Integer n:zNums) {
-
if
( i%n ==
0
) {
-
b =
false
;
-
break
;
-
}
-
}
-
if
(b) zNums.add(i);
-
}
-
return zNums;
-
}
或许还有更巧妙的方法。
通过几道很小的数学题目倒引出了我对于数学的兴趣。
看过王小波的小说和散文,王小波曾经一段时间就一们心思地学习数学,在其小说中的也有这样的角色,在无聊的时候会取出一本数学书去做练习,把数学当作一件有趣的事情去做,把数学和思考的乐趣,人的智慧联系在一起。
在坛子里也曾看到过喜欢研究数学的偶像派人物。被他们那种研究学问的痴心,对于思考的乐趣的追求所吸引,感觉数学也是一门很有趣的科学!
分享到:
相关推荐
人教版小学一年级数学下册-认识人民币-解决问题专项训练(40道含答案).doc
约瑟夫问题是一个经典问题(猴子选大王) 有循环链表等多种解法,这里提供的是最简单的数学解法数学解法。
人教版小学一年级数学下册-认识人民币-解决问题专项训练(40道含答案).pdf
此题集共 500 道,1-445 题为基本四则运算,建议每天做 10 道,如能保证答题准确率 在 80%以上,说明计算能力比较过关。 446-500 题为能力计算题目,涉及等差数列,等比数列,裂项等技巧,建议学完计算技 巧后再作...
所以天知 道 2017 年 A 题会出什么样奇怪的问题。这本书有助于大家对于物理在工程上的 应用有一定的认识,以作为知识储备。 14. 《MATLAB 神经网络 43 个案例分析》 王小川等著 阅读人群:编程 最近几年比赛中,...
测试方式包括自动评分和人工评分两种,自动评分适用于简单的数学题目,人工评分则需要老师进行批改和评分。测试成功后,学生可以在个人中心查看已测的数学题目列表,并进行管理和查询。 系统还提供了多种教学资源和...
本书精心命制和整合了大约1000道考研数学复习的题目,其主要来源是: (1)与考研数学命题密切相关的重要资料.这里包括考研数学命题前的全国征题、部分考研命题的备考题(所谓考研数学B卷考题)、命题人退下来以后...
题目: 作一个可供小学数学运算的程序:10以内加减乘除法,能根据输入的题数,由计算机自动出题,判断做题是否正确,最后计算分数。如: 请输入题数:2 3+5=8 正确! 2*4=6 错误! 您的正确率为:50%
小学生简单算式判卷系统(不能使用...自动生成10道题目,加减各三道,乘除各二道。数据范围为1到100内。 自动判卷,并将成绩存入数据库。 要求包含 1)闪屏:描述版本号、题目、倒计时。 2)包含菜单、工具栏、状态栏
前四道大题中,第一道大题的第一小题我是在MATLAB中新建函数,在其中编写代码,然后再去运行该函数,剩下来的从第一大题的第二小题直到第四大题结束的所有题目均是在MATLAB中新建脚本,在其中编写代码,然后再去运行...
这就是旅行商问题,乍一听很简单,在应用数学界却是一道研究极其热烈的难题,时至今日仍无人能解。本书中,William J. Cook将带领读者踏上一场数学之旅,跟随旅行商的脚步,从19世纪初爱尔兰数学家W. R. Hamilton...
基于特性方程的航空发动机内压式超音速进气道的建模与性能仿真,任志彬,孟光, 本文介绍了航空发动机超音速进气道的数学模型,分析了内压式超音速进气道的起动问题,基于特性方程建立了一种快速简单的超音�
这就是旅行商问题,乍一听很简单,在应用数学界却是一道研究极其热烈的难题,时至今日仍无人能解。本书中,William J. Cook将带领读者踏上一场数学之旅,跟随旅行商的脚步,从19世纪初爱尔兰数学家W. R. Hamilton...
(2)3.1-6.15河南河北数学题目中河北省拍搜占比第二的,占3.11%的题号id为1101347351,知识点是关于长方体的体积公式,在中考中所占比例也是很小的,难度层级为简单(了解),对中考学生的考试来说意义不大。...
与直接数值模拟数据库相比,可以以简单但极其准确的方式为流动方向上的速度建立一个普通的微分模型,该模型的求解可以通过一种简单但极为精确的方式进行。 对于壁上的粘性应力,可以确定常微分方程的精确数学解。 ...
电信提高班独有的数学建模课程代码(2021版) 这个课可能只有电信提高班的有了,代码是本人自己写的,少部分参考了同学的。由于老师推荐matlab写代码,但是本人在处理简单数据和编程都喜欢python,因此后期有无...
教学过程 教学环节 教师活动 学生活动 设计意图 本地生 西藏生 情景导入 展示简单一元二次方程并提出问题:如何求解这个方程? 回想初中所学一元二次方程求根公式,很快对方程式进行求解。 用解数学题引入,吸引...
龙 翀 -《解决空间规模问题的几种常用的存储结构》 骆 骥 -《数学模型的建立和选择》 施 遥 -《人工智能在围棋程序中的应用》 肖 洲 -《数据结构的在程序设计中的应用》 谢 婧 -《规模化问题的解题策略》 徐 串...