丢番图(
Diophantus
)是古希腊亚历山大学后期的重要学者和数学家(约公元
246—330
年)丢番图是代数学的创始人之一,对算术理论有深入研究,他完全脱离了几何形式,在希腊数学中独树一帜。我从网上只能找到一幅丢番图的画像,如下:
丢番图死后在墓志铭上刻有一段有趣的文字:以下数字可以告诉你他的一生有多长——他生命的六分之一是愉快的童年,再过了生命的十二分之一,面颊上长了细细的胡须;又过了生命的七分之一他结婚了。婚后5年,他有了第一个孩子,感到很幸福,但命运给这个孩子的光辉灿烂的生命只有他父亲的一半。儿子死后,他在深切的悲痛中活了四年就告别了尘世。问题来了:请问丢番图的年龄有多大?
这段墓志铭是麦特罗尔为了纪念数学家丢番图为数学作出的杰出贡献而撰写的,同时这也是一个经典的数学问题。我们今天来看一下如何用计算机程序解决丢番图的墓志铭问题。
假设丢番图一生活了x岁,那么根据墓志铭的叙述可得出以下的方程式:
我们应用穷举法可以简单方便地解决这类一元一次方程问题。首先划定一个解空间,然后在该解空间中遍历每一个可能解,凡是符合上述方程条件的元素都是该问题的解。由于上述为一元一次方程,因此该问题存在唯一解。
本程序选取的解空间为[20,100],因为已知丢番图已经有了儿子,并且儿子活了他的年龄的一半就去世了,而丢番图仍然活着。根据常识丢番图肯定活过了20岁,而丢番图活过100岁的可能性也不大。因此选定在20~100之间搜索答案,这样可以减小搜索范围,以尽快得到结果。
之所以采用浮点型数据进行运算是因为这样可以避免因整数运算而造成的舍入误差。例如:整数运算12/6等于2,而13/6也等于2,这样势必产生误差。为了获取精确值,这里采用浮点数运算。
程序的运行结果为84
丢翻图活了
84
岁
,我们再翻回头看看丢先生的生卒年份“
约公元
246—330
年”,看来我们的计算是没错的。
【JSOI2013】
丢番
图
题
面DescriptionInputOutputSample InputSample OutputData Constraint思路Code
Description
丢番
图
是亚历山大时期埃及著名的数学家。他是最早研究整数系数不定方程的数学家之一。
为了纪念他,这些方程一般被称作
丢番
图
方程。最著名的
丢番
图
方程之一是 xn+yn=znx^n+y^n=z^nxn+yn=zn。费马提出,对于n >>> 2,xn+yn=znx^n+y^n=z^nxn+yn=zn没有正
对于一个给定的正整数n ,有多少种本质不同的解满足方程
1x\frac{1}{x} + 1y\frac{1}{y} = 1n\frac{1}{n} (x,y,n∈N*)分析:
n = ∏i=1kpcii\prod\limits_{i=1}^kp^{c_i}_i
包括本质相同的解得个数
ans = ∏i=1k(2∗ci+1)\prod\limits_{i=1}^k(2 *
题
目:假设现在有16个石子,A和B每次可以取走1,3,6个,每次不能不取。最后一个把石子取完的人胜利。现在A先取,问如何取数才能保证自己胜利。
思路:从三个数的组合下手。1,3,6两数相加可得:2,4,6,7,9,12。由于
题
目是要保证A有100%的胜利,因此假设B和A一样聪明,每次都会取最有利的石子数。
(1) A给B剩2个:B只能选1个,剩1个,A必胜;(ok)
(2) A给B剩4个:B
description
丢番
图
是亚历山大时期埃及著名的数学家。他是最早研究整数系数不定方程的数学家之一。
为了纪念他,这些方程一般被称作
丢番
图
方程。最著名的
丢番
图
方程之一是 xn+yn=z^n。费马
提出,对于n≥2,xn+yn=z^n没有正整数解。这被称为“费马大定理”,它的证明直到最近才被安德
鲁·怀尔斯(Andrew Wiles)证明。
考虑如下的
丢番
图
方程:1/x+1/y=1/n(x,y,...
//返回 d = gcd(a,b); 并返回 ax + by = d的特解x,y
typedef long long ll;
ll extend_gcd(ll a,ll b,ll &x,ll &y){
if(b == 0){ x=1; y=0; return a;}
ll d = extend_gcd(b,a%b,y,x);
y -= a/b * x;
return d;
结论(1):如果两个整数都能表示为两个平方数之和,则它们的积也能表示为两个平方数之和。
结论(2):如果一个能表示为两个平方数之和的整数被另一个能表示为两个平方数之和的素数整除,则它们的商也能
表示为两个平方数之和。
定理: 正整数n 能表示为两平