有多少种方法可以从1,2,3,。。。,n中选出3个不同的整数,使得它们为三边长可以组成三角形?比如n=5时有三种方法,即(2,3,4)(2,3,5)(3,4,5)。n=8时有22种方法。
由题设三角形三边为x,y,z
设f(x)为最大边为x的三角形个数(1<=x<=n)
又三边各不相同所以:y+z>x==>z>x-y 所以 x-y<z<x;
则易知:
y=1 f(x)=0
y=2 f(x)=1
y=3 f(x)=2
.
.
y=x-1 f(x)=x-2
则共有三角形((x-1)(x-2))/2个
由所有三角形都算了两遍,且存在y=z的情况
当y=z
有z最小值x-y+1;
当z(min)<=y时会有一个z=y的出现,即
x-y+1<=y ====> ((x+1)/2)<=y
即有多少个y满足以上不等式就有多少种y=z的情况
又知y有最大值x-1所以共有x-1-(x-1)/2+1个即 (x-1)/2个;
所以f(x)=((x-1)(x-2)/2-(x-1)/2)/2个
程序略。