zoukankan      html  css  js  c++  java
  • 勾股数

    简介
    所谓勾股数,一般是指能够构成直角三角形三条边的三个正整数(例如a,b,c)。
    即a²+b²=c²,a,b,c∈N
    又由于,任何一个勾股数组(a,b,c)内的三个数同时乘以一个整数n得到的新数组(na,nb,nc)仍然是勾股数,所以一般我们想找的是a,b,c互质的勾股数组。
    关于这样的数组,比较常用也比较实用的套路有以下两种 [4]  :

    第一类型

    当a为大于1的奇数2n+1时,b=2n²+2n, c=2n²+2n+1。
    实际上就是把a的平方数拆成两个连续自然数,例如:
    n=1时(a,b,c)=(3,4,5)
    n=2时(a,b,c)=(5,12,13)
    n=3时(a,b,c)=(7,24,25)
    ……
    这是最经典的一个套路,而且由于两个连续自然数必然互质,所以用这个套路得到的勾股数组全部都是互质的。

    第二类型

    2、当a为大于4的偶数2n时,b=n²-1, c=n²+1
    也就是把a的一半的平方分别减1和加1,例如:
    n=3时(a,b,c)=(6,8,10)
    n=4时(a,b,c)=(8,15,17)
    n=5时(a,b,c)=(10,24,26)
    n=6时(a,b,c)=(12,35,37)
    ……
    这是第二经典的套路,当n为奇数时由于(a,b,c)是三个偶数,所以该勾股数组必然不是互质的;而n为偶数时由于b、c是两个连续奇数必然互质,所以该勾股数组互质。
    所以如果你只想得到互质的数组,这条可以改成,对于a=4n (大于等于2), b=4n²-1, c=4n²+1,例如:
    n=2时(a,b,c)=(8,15,17)
    n=3时(a,b,c)=(12,35,37)
    n=4时(a,b,c)=(16,63,65)
    当初的梦想实现了吗,事到如今只好放弃吗~
  • 相关阅读:
    woj 1574
    UESTC 594 我要长高 dp单调队列
    HDU 3401 Trade dp 单调队列优化
    HDU 2844 Coins 多重背包
    2-1
    1-2
    1-1
    12-1
    9-1
    14-8
  • 原文地址:https://www.cnblogs.com/caijiaming/p/11396426.html
Copyright © 2011-2022 走看看