kon3155 发表于 2009-8-31 10:44:04

见一类海伦三角形

有的字母看不太清楚,维普有下载,谁有权限可以下载后传上来。
http://www.cqvip.com/asp/userlink.asp?re=77591
参考资料正好切题

mathe 发表于 2009-8-31 10:55:28

简单写了程序计算所有的解:
9,10,17,
7,15,20,
6,25,29,
25,6,29,
15,7,20,
10,9,17,
6,8,10,
6,8,10,
5,12,13,
8,6,10,
6,8,10,
12,5,13,
8,6,10,
5,13,12,
13,5,12,
6,10,8,
6,10,8,
10,6,8,
10,6,8,
6,29,25,
29,6,25,
7,20,15,
8,10,6,
10,8,6,
8,10,6,
10,8,6,
10,8,6,
20,7,15,
9,17,10,
17,9,10,
10,17,9,
17,10,9,
12,13,5,
13,12,5,
15,20,7,
20,15,7,
// et.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include <math.h>

void output(int a, int b)
{
    int r=(a*a+4)*b;
    int r2=(b*b+4)*a;
    int d=abs(a*b-4);
    if(d==0){
      fprintf(stderr,"invalid solution %d,%d\n",a,b);
      return;
    }
    if(r%d!=0){
      fprintf(stderr,"invalid solution %d,%d\n",a,b);
      return;
    }
    int c1=r/d;
    int c2=r2/d;
    printf("%d,%d,%d,\n",a+b,c1,c2,a,b);
}

void lookup(int a)
{
    int u=a*a+4;
    int d,b;
    for(d=1;d<=u;d++){
      if(u%d==0){
            if((d+1)%a==0){
                b=(d+1)/a*4;
                output(a,b);
            }
            if((d+2)%a==0){
                b=(d+2)/a*2;
                output(a,b);
            }
            if((d+4)%a==0){
                b=(d+4)/a*1;
                output(a,b);
            }
      }
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    int a;
    for(a=1;a<=10;a++){
      lookup(a);
    }
    for(a=11;a<=76;a++){
      if(32%(a+2)==0||52%(a+3)==0||80%(a+4)==0){
            lookup(a);
      }
    }
        return 0;
}

mathe 发表于 2009-8-31 10:59:41

实际上只有5个解:
9,10,17
7,15,20
6,25,29
6,8,10
5,12,13

gxqcn 发表于 2009-8-31 11:02:58

与 11# 里的论文结果完全一致。:):b:

kon3155 发表于 2009-8-31 11:06:22

与 11# 里的论文结果完全一致。:):b:
gxqcn 发表于 2009-8-31 11:02 http://bbs.emath.ac.cn/images/common/back.gif

给的链接因为不是免费的,做了模糊处理,最好还是能把维普的下载下来,试了几个账号,都没有收录,可能太新了。

gxqcn 发表于 2009-8-31 11:08:54

其基本思路基本可以看清了,具体数值结果就容易推导了。

kon3155 发表于 2009-8-31 11:13:42

看到整数,三角形,面积,边长,最容易想到海伦公式了,google,没想到竟然搜到【海伦三角形】~:)

〇〇 发表于 2009-8-31 13:14:34

假设有一个三角形,边长分别为a、b、c,三角形的面积S可由以下海伦公式求得:s=根号下(p(p-a)(p-b)(p-c))


而公式里的p:(a+b+c)/2

〇〇 发表于 2009-8-31 13:20:31

本帖最后由 〇〇 于 2009-8-31 13:36 编辑

如果2楼和7楼成立
SQL> with bc as(select level n from dual connect by level<=10)
2select a.n,b.n,c.n from bc a,bc b,bc c
3where power(a.n+b.n+c.n,2)=(a.n+b.n+c.n)*(a.n-b.n+c.n)*(a.n+b.n-c.n)*(-a.n+b.n+c.n)/16
4and a.n>=b.n and b.n>=c.n;


         N            N            N
------------ ------------ ------------
          10            8            6

SQL> c/1/5
1* with bc as(select level n from dual connect by level<=50)
SQL> /

         N            N            N
------------ ------------ ------------
          10            8            6
          13         12            5
          17         10            9
          20         15            7
          29         25            6

Elapsed: 00:00:00.29

〇〇 发表于 2009-8-31 13:38:11

论文
页: 1 [2] 3
查看完整版本: 求所有的满足条件的三角形的三边长