勾股数:

  1. 凡是可以构成一个直角三角形三边的一组正整数,称之为勾股数。
  2. 勾股数 —— 构成直角三角形的充分且必要条件。

1.

首先来观察:3 4 5;5 12 13;7 24 25;9 40 41;11 60 61; ... ;发现这些勾股数都是以奇数开头,从3起就没有间断过。

于是:若是大于1的奇数,由于奇数平方还是奇数,它平方后就可以拆成相邻的两个整数相加,那么奇数与这两个整数构成一组勾股数。此规律对于任意大于1的奇数都成立。

证明:

设此奇数:,奇数=偶数+奇数

那么,

则:

证毕。

2.

再来观察: 4 3 5;6 8 10;8 15 17;10 24 26;… ;发现这些都是以偶数开头。

于是: 对于大于2的偶数,平方后除以4再减一或者加一即构成一组勾股数。也可以说:把这个偶数除以2再平方,然后这个平方数加一或者减一即得一组勾股数。

证明:

设此偶数:, 则另外两条边:

3.

任取两个正整数m、n(m>n),那么:

构成一组勾股数。

证明:将上面代数式带入验证即可。

以上可得:任意大于2的整数都可以找出另外两个数构成勾股数。

此外, 观察分析上述的勾股数,可看出它们具有下列二个特点:

  1. 直角三角形短直角边为奇数(大于1),另一条直角边与斜边是两个连续自然数。
  2. 如果短直角边为奇数,则直角三角形的周长等于短直角边的平方与其本身的和(由上述1可证明)。
  • 下面来看一个典型例题:

Codeforces Round #368 (Div. 2)

题意很简单,由样例即可知:给出一个整数问是否能找出另外两个数使得构成一组勾股数。如不能则输出-1,反之,则输出任意符合的两个数。

很明显是上述1、2情况。

给出两种代码:

1.0  由自己摸索:

int main()
{long long a;while(~scanf("%I64d",&a)){if(a<3) printf("-1\n");//小于3不符合;else{if(a%2) printf("%I64d %I64d\n",a*a/2,a*a/2+1);奇数很容易推导出来;else{if((a/2)%2){a/=2;printf("%I64d %I64d\n",a*a/2*2,(a*a)/2*2+2);continue;}if(a%3==0){long long x=a/3;printf("%I64d %I64d\n",4*x,5*x);}else if(a%4==0){long long x=a/4;printf("%I64d %I64d\n",3*x,5*x);}else if(a%5==0){long long x=a/5;printf("%I64d %I64d\n",3*x,4*x);}else printf("-1\n");}}}return 0;
}

2.0  用勾股数定理:

int main()
{long long a;while(~scanf("%I64d",&a)){if(a<3){printf("-1\n");continue;}if(a%2) printf("%I64d %I64d\n",a*a/2,a*a/2+1);else{a/=2;long long b=a*a-1;long long c=b+2;printf("%I64d %I64d\n",b,c);}}return 0;
}//明显简短许多。

关于基本勾股数规律的探讨总结与例题!相关推荐

  1. 数学--数论--直角三角形--勾股数---奇偶数列法则 a^2+b^2=c^2

    先说勾股数: 勾股数,又名毕氏三元数 .勾股数就是可以构成一个直角三角形三边的一组正整数.勾股定理:直角三角形两条直角边a.b的平方和等于斜边c的平方(a²+b²=c²) 勾股数规律: 首先是奇数组口 ...

  2. 三个数差的平方公式推导过程_勾股数公式的简单推导

    勾股数 是指满足 的正整数,它们的通用公式为 ,下边我从定义出发,利用平方差公式举例实验找规律,推导出这一通用公式. 由 可知 当 为奇数时 和 全都是奇数:当 为偶数时 和 全都是偶数.( ,与 同 ...

  3. hdu6441 Find Integer 求勾股数 费马大定理

    题目传送门 题目大意: 给出a和n,求满足的b和c. 思路: 数论题目,没什么好说的. 根据费马大定理,当n>2时不存在正整数解. 当n=0或者1时特判一下就可以了,也就是此时变成了一个求勾股数 ...

  4. MATLAB找勾股数,一种寻找勾股数的方法

    一种寻找勾股数的方法 作者:小龙博客 2011年08月12日 2条评论 分类:杂七杂八 爱数学 勾股定理是初中数学的一个重要内容,早在古代人们就已对此做出了深入的研究,并且取得了显著的成果.小龙以前上 ...

  5. 勾股数(毕达哥拉斯三元组)

    勾股数(毕达哥拉斯三元组) 勾股数:可以构成一组直角三角形边长的三个正整数. eg: 3 4 5 勾股数的规律: 1)任何大于1的正奇数a=2k+1,其平方t=a^2仍为奇数,且将平方数拆成两个相邻的 ...

  6. 【华为OD机试真题 C++】 勾股数元组【2022 Q4 | 100分】

    ■ 题目描述 [勾股数元组] 如果3个正整数(a,b,c)满足a2 + b2 = c2的关系,则称(a,b,c)为勾股数(著名的勾三股四弦五), 为了探索勾股数的规律,我们定义如果勾股数(a,b,c) ...

  7. 勾股数元组( 如果3个正整数(a,b,c)满足a2 + b2 = c2的关系)

    注意!答案仅作为参考(实际考试中下列代码通过用例100%,但不代表最优解) 如果3个正整数(a,b,c)满足a2 + b2 = c2的关系,则称(a,b,c)为勾股数(著名的勾三股四弦 五),为了探索 ...

  8. C语言 · 勾股数

    勾股数 勾股定理,西方称为毕达哥拉斯定理,它所对应的三角形现在称为:直角三角形. 已知直角三角形的斜边是某个整数,并且要求另外两条边也必须是整数. 求满足这个条件的不同直角三角形的个数. [数据格式] ...

  9. 【c语言】蓝桥杯算法提高 勾股数

    问题描述 勾股数是一组三个自然数,a < b < c,以这三个数为三角形的三条边能够形成一个直角三角形 输出所有a + b + c <= 1000的勾股数 a小的先输出:a相同的,b ...

  10. python【蓝桥杯vip练习题库】ADV-187 勾股数

    试题 算法提高 勾股数 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 勾股数是一组三个自然数,a < b < c,以这三个数为三角形的三条边能够形成一个直角三角形 输出 ...

最新文章

  1. vector赋值的常见错误
  2. 解决虚拟机 正在决定eht0 的ip信息失败 无链接-- 添加虚拟网卡
  3. 十七、MySQL触发器(创建、删除、查看)详解
  4. java 注释 过时_Java 注解
  5. 永久免费!原型设计利器摹客RP正式发布
  6. matlab bs2rv.m,matlab遗传算法工具箱中的例子不能用?
  7. 南信大滨江学院计算机考试姜青山,【数据库原理】滨江学院姜青山 期末试卷知识点笔记整理 南京信息工程大学...
  8. OSSIM5 自定义安装
  9. matlab imnoise 用法,使用matlab的imnoise添加噪声
  10. 5.3 FIR低通滤波器的设计
  11. 3559A对接IMX577 4lane 12M
  12. matlab乘除号怎么打,matlab中的乘除法
  13. [20160831]关于数据块Checksum.txt
  14. 【转摘】图像思维与意识观念的统一——读毕建勋《子非鱼》有感(初稿)[1]
  15. 永恒之蓝MS17-010漏洞复现
  16. HTML中如何将字体加粗-前端入门
  17. 最新Z-blog黑色极简风格文章博客主题模板源码
  18. 使用Ultra Librarian生成Cadence Allegro的PCB封装库和OrCAD Capture CIS的原理图库
  19. 医院PACS系统之安装(win10)
  20. Vivado错误[Place30-494]

热门文章

  1. Android 自定义View UC下拉刷新效果(一)
  2. Python使用sox判断音频是否silent
  3. Java-Aspose实现Word文字替换(本地储存或浏览器下载)
  4. 【WPS表格】数据透视表:统计各商品及各分店的销售总额
  5. Excel文件减肥修复终极办法----解决Excel文件打开慢的问题
  6. 程序员自我修改之读书学习
  7. 机器学习基础-Lagrange duality
  8. cmdline-tools component is missing
  9. Pytorch搭建ResNet网络进行垃圾分类
  10. 【安卓小笔记】自己制作一个Launcher