找回密码
 欢迎注册
楼主: lsr314

[提问] 周长、面积相等的本原三角形

  [复制链接]
发表于 4 天前 | 显示全部楼层
这个是保证你的逻辑不变的情况下的代码
  1. Block[{m,n,p,q,a,b,c,d,s,A,k,f,t,pp,g},
  2. Table[{j,pp=108*j,t=Association[];Do[s=Sort[{m n(p^2+q^2),p q(m^2+n^2),(m q+n p) (m p-n q)}/.k];A=m n p q (m q+n p) (m p-n q)/.k;g=GCD@@s;
  3. d=ToString@(pp/g)<>"->"<>ToString@(A/g^2);
  4. If[KeyExistsQ[t,d]==False,t[d]={s/g}];t[d]=Union[t[d],{s/g}],{k,Solve[{2 m p (m q+n p)==pp,m p>n q},{m,n,p,q},PositiveIntegers]}];t},{j,10}]]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 4 天前 | 显示全部楼层
我写了一个示例.
  1. candidates=Association[];Block[{mm=20,s,p,A,g,k},Monitor[Do[If[m p-n q<=0,Continue[]];s=Sort[{m n(p^2+q^2),p q(m^2+n^2),(m q+n p) (m p-n q)}];{L,A}={2 m p (m q+n p),m n p q (m q+n p) (m p-n q)};g=GCD@@s;k={L/g,A/g^2};If[KeyExistsQ[candidates,k]==False,candidates[k]={s/g},candidates[k]=Union[candidates[k],{s/g}]],{m,mm},{n,m+1,mm},{p,mm},{q,mm}],{m,n,p,q}]];
  2. Table[k -> candidates[k], {k, Select[Keys[candidates], First[#] == 108 &]}]
复制代码

周长108的有6组
  1. {{108,270}->{{27,29,52}},{108,90}->{{4,51,53}},{108,126}->{{5,51,52}},{108,234}->{{15,41,52}},{108,306}->{{20,37,51}}}
复制代码

将mm改成50,大概1分钟,得到一个4组和一个5组解的
  1. {2926,87780}->{{133,1375,1418},{143,1358,1425},{323,1155,1448},{703,770,1453}},
  2. {3542,318780}->{{421,1518,1603},{511,1375,1656},{583,1288,1671},{759,1096,1687},{851,1001,1690}}
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 4 天前 | 显示全部楼层
如果是我写代码,先生成互质的真分数
  1. Block[{n = 100},
  2. rationals =
  3.   ReverseSort[
  4.    Reap[Do[If[GCD[i, j] == 1, Sow[i/j]], {i, n}, {j, i + 1, n}]][[2,
  5.      1]]]]; Length[rationals]
复制代码


然后从真分数里遍历一遍,打表.
  1. candidates = Association[]; Block[{s, L, A, g, k, m, n, p, q},
  2. Monitor[Do[{m, n, q, p} = {Numerator[rationals[[u]]],
  3.      Denominator[rationals[[u]]], Numerator[rationals[[v]]],
  4.      Denominator[rationals[[v]]]}; If[m p - n q <= 0, Continue[]];
  5.    s = Sort[{m n (p^2 + q^2),
  6.       p q (m^2 + n^2), (m q + n p) (m p - n q)}]; {L,
  7.      A} = {2 m p (m q + n p), m n p q (m q + n p) (m p - n q)};
  8.    g = GCD @@ s; k = {L/g, A/g^2};
  9.    If[KeyExistsQ[candidates, k] == False, candidates[k] = {s/g},
  10.     candidates[k] = Union[candidates[k], {s/g}]], {u, 1,
  11.     Length[rationals]}, {v, u + 1, Length[rationals]}], {u, v}]];
复制代码

然后提取想要的解, 比如,所有大于4组的解
  1. Column[Normal[Select[candidates, Length[#] > 3 &]]]
复制代码
  1. {36366,10182480}->{{1159,17574,17633},{1653,16775,17938},{2552,15783,18031},{4408,13871,18087}}
  2. {5474,492660}->{{391,2521,2562},{442,2415,2617},{667,2142,2665},{712,2093,2669}}
  3. {3542,318780}->{{421,1518,1603},{511,1375,1656},{583,1288,1671},{759,1096,1687},{851,1001,1690}}
  4. {6118,1211364}->{{1007,2415,2696},{1035,2366,2717},{1387,1925,2806},{1610,1691,2817}}
  5. {12090,3723720}->{{1469,5115,5506},{1488,5077,5525},{2041,4340,5709},{2821,3504,5765}}
  6. {71162,93933840}->{{5980,31841,33341},{7293,29806,34063},{12701,23800,34661},{17017,19389,34756}}
  7. {21658,12994800}->{{2989,8840,9829},{3332,8329,9997},{4704,6749,10205},{5304,6125,10229}}
  8. {2926,87780}->{{133,1375,1418},{143,1358,1425},{323,1155,1448},{703,770,1453}}
  9. {7238,1302840}->{{1034,2809,3395},{1351,2444,3443},{1363,2431,3444},{1645,2134,3459}}
  10. {8294,622050}->{{397,3828,4069},{572,3625,4097},{1276,2897,4121},{1972,2197,4125}}
复制代码



然后发现 统计一下,就知道 周长 294294  和 周长 47250  都有 67个面积.
  1. {67,294294,{3697677984,3692464776,3527491968,3372819450,3654290640,3627173550,3606026424,100059960,3406537134,3284321040,2215108896,3307023720,985128144,3385768386,2966063100,3204525324,3407588184,533302770,3090423336,3336032700,3353690340,2530928400,3101690592,3306477174,2675973300,3243624384,3019876860,3062759700,3164627466,3003480480,3068981916,2825726904,2368099734,2677108434,1001608608,1144803660,2509823316,2773090320,2117235120,2049967920,1890923034,1022461440,1375740366,2476694220,2551108560,1085860776,1197356160,773783010,439002564,2122280160,81014934,1279338060,1665283620,1408911504,508876368,423362940,2080910832,950149200,1668857190,53141088,1583301720,763903140,1373932560,1192311120,1316965650,1061644584,1112010900}}
  2. {67,47250,{91450800,88968600,83969550,11399850,93725100,53562600,63025200,89535600,26737200,92288700,25382700,88842600,72664200,18018000,86360400,50891400,81288900,59459400,83251350,80936100,43243200,75203100,30066750,67813200,35607600,55137600,40679100,76255200,48894300,32079600,71435700,11809350,37251900,65601900,72160200,73445400,9317700,69136200,68758200,65356200,40968900,64241100,60013800,59950800,43797600,29058750,29232000,39085200,34483050,21205800,46720800,12162150,44767800,44421300,18944100,36773100,16298100,37107000,34341300,30769200,30076200,28381500,24598350,10180800,19451250,26507250,8259300}}
  3. {66,45738,{53153100,56498904,80205048,77000616,63358218,87650640,81751824,24622290,57948660,68191200,67020030,49349916,23832270,82702620,81635400,68385240,27969480,14888412,30935520,37337454,76230000,78225840,10131660,72141300,60015186,46256364,70418502,65477412,58468410,48130236,61441380,69889050,33402600,65031120,69008940,67844700,66472560,21150360,65934792,63513450,63707490,43740774,57789270,19381824,54065088,188496,45003420,48787200,39632670,40942440,27128178,19961172,50666616,39866904,3714480,42633360,42002730,18302130,12432420,40817700,11053350,21962556,21435876,23937606,16801092,14461524}}
  4. {64,54054,{121657536,123747624,114360246,110270160,77909832,65945880,97657560,16576560,117837720,106126020,113657544,94666572,64360296,86954868,105585480,54918864,57999942,50162112,87387300,35639604,75999924,101801700,67963896,93657564,13405392,86486400,62702640,80990910,30630600,88504416,63783720,67747680,7963956,62990928,33333300,59765706,35747712,73819746,81171090,17765748,38198160,33207174,69405336,64936872,6846840,9801792,66846780,79801722,71135064,22342320,68324256,51351300,41441400,60324264,46486440,31351320,50198148,32972940,34954920,39279240,8504496,28828800,8972964,9495486}}
  5. {63,113190,{59958360,404864460,528435600,191711520,207267060,500607030,529664520,415989420,219054990,526996470,416409840,449073240,443122680,415795380,437915940,78844920,296719500,399981120,441085260,266287560,9281580,469447440,423605490,442023120,436816380,420225960,426629280,280905240,430477740,223210680,410459280,406837200,409844820,395712240,101757810,377957580,390489330,357551040,78133440,361415670,334039860,286516230,307327020,3686760,326634000,243908280,207008340,166518660,122342220,22540980,233931390,203030520,186698820,135278220,61381320,179519340,35962080,151739280,74010090,56239260,84795480,45373020,24578400}}
  6. {63,17010,{10629360,12099780,9253440,11438280,11476080,4885650,11597040,6380640,4594590,10761660,11060280,10249470,5333580,2014740,6977880,10667160,10145520,5804190,8648640,8867880,9011520,7612920,7295400,9729720,7454160,5352480,4709880,2506140,4876200,3160080,5601960,8550360,6637680,5155920,1088640,124740,1992060,7733880,4626720,1205820,6936300,5904360,5571720,4054050,5626530,5798520,4607820,3250800,5624640,5530140,83160,1621620,4505760,2016630,3727080,2948400,2789640,1580040,1678320,2027970,289170,810810,1394820}}
  7. {62,57834,{57641220,87200820,6573798,45592470,124857180,112390740,125114220,129914442,126977760,133904988,128867004,127234800,122248224,129644550,94744944,129001950,122678766,98896140,84399084,120198330,79945866,43054200,119530026,97405308,54942300,110559330,72035460,78936984,78885576,98092890,16399152,92058876,99384516,103625676,91184940,95034114,64709820,59202738,69760656,91891800,86442552,72453150,58605120,58309524,94397940,3951990,80363556,3540726,39879756,56831544,30909060,27779598,50373414,2988090,32354910,32232816,27567540,20813814,18506880,13147596,7518420,1156680}}
  8. {62,35322,{31458504,14542920,26420856,27787452,22803396,51917250,49576254,40938198,17975244,29563296,47804064,50766240,39190368,30242940,7281204,1400700,47126856,40273170,47755344,36954120,23614584,41678742,31889676,41533800,41972280,18537960,5892684,9987600,43068480,41667780,42059976,41040510,36007734,17685360,25992120,34591200,38762850,21802200,28450044,37083228,5161884,34600944,32569320,34643574,24152940,22692558,32637528,18513600,8737932,3111990,25407480,23781450,21568344,27104154,25383120,12216540,23902032,23897160,6143592,20766900,12044802,3885420}}
  9. {60,57750,{140032200,6906900,106005900,134187900,127142400,93093000,102102000,109032000,43682100,135088800,115684800,111757800,56491050,96350100,96996900,29360100,102656400,58812600,114391200,14599200,56456400,115061100,45206700,114552900,106906800,104492850,62323800,112797300,65615550,80896200,109170600,81485250,98255850,100300200,99353100,99422400,91914900,40378800,82882800,92677200,63640500,59759700,81450600,45530100,71979600,21483000,11388300,48048000,20836200,75490800,14044800,44097900,33610500,12381600,2772000,20986350,13744500,17371200,17117100,15892800}}
  10. {59,40362,{41244756,18405072,52100832,67599840,66766560,49392672,52639860,30750636,24933300,61001304,51018870,40362000,46728780,19345116,58826964,53458818,40026084,5077800,60022200,54241320,22941240,12277860,59319120,47990418,54853260,56084952,54651450,37653840,53154150,27211800,46348596,51827412,6330324,28844508,50788416,47939640,48838020,45938466,45347358,4266654,30505860,34789440,25277028,19731810,32628120,39729228,6985230,34930056,36191694,33383280,33799920,32576040,28697382,1360590,18691512,30011100,19373760,2421720,3309684}}

复制代码


评分

参与人数 1威望 +8 金币 +8 贡献 +8 经验 +8 鲜花 +8 收起 理由
northwolves + 8 + 8 + 8 + 8 + 8 很给力!我今晚认真研读一下

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 4 天前 | 显示全部楼层
9组、10组的有结果了么?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 4 天前 | 显示全部楼层
本帖最后由 northwolves 于 2025-7-15 20:56 编辑
  1. s = {12, 70, 210, 2002, 2842, 20026, 91698, 721786}; ListPlot@Log@s
复制代码


listplot.png

若用这个曲线估测,则$a(9)\approx 4100010;a(10)\approx 25135540;a(11) \approx 154099102 ;a(12) \approx 944739312$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
.
mathe 发表于 2025-7-14 15:56
上面表达式如果我们设
\(gcd(n,p)=u_{00}, gcd(m,q)=u_{11}, gcd(n,q)=u_{01}, gcd(m,p)=u_{10}\)
那么可以 ...

关于这个唯一麻烦的地方, 我们是不是可以先预生成一个$(p,q)=1,(m,n)=1$但是$gcd[m n (p^2 + q^2), (m^2 + n^2) p q,(n p + m q) (m p - n q)]>1$的候选集。
以$(1/6,31/38)$为例, 三边的公约数是74, 其中$gcd[,(p^2 + q^2), (m^2 + n^2)]$贡献的是37,两个分母贡献了2
  1. 2,[1/6,31/38],[1302,49476],[74,30081408],[[290, 403, 609], [195, 518, 589]]
复制代码
  1. {GCD[m n (p^2 + q^2), (m^2 + n^2) p q, (n p + m q) (m p - n q)], GCD[p^2 + q^2, m^2 + n^2]} /. Thread[{n, m, p, q} -> {1, 6, 31, 38}]
复制代码

点评

我感觉我好像找到出路了  发表于 3 天前
这种情况还需要判断和c的公约数,就比较复杂了  发表于 3 天前
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
还可以这样,不确定是否有bug,就是针对$[K,a,b,c,L]\to[8 r^3 u^2 (u - v)^2 v (1 + u v), r u (1 + v^2),  r (1 + u^2) v, -r ((u - v) (1 + u v)),2 r v (1 + u v)]$, 其中$K=(a+b-c)(a-b+c)(-a+b+c)$
如果我们设$[u, v,r] -> [i/k, j/k,k^3], i<j<k,gcd(i,j,k)=1$,那么,就可以得到
一个解是 $[K,a,b,c,L]=[8 i^2 (i - j)^2 j k^2 (i j + k^2), i (j^2 + k^2),  j (i^2 + k^2), (j-i) (i j + k^2),2 j (i j + k^2)]$,面积是$S=i j k (j-i)(i j + k^2)$
另一个解是$[K,a,b,c,L]=[8 i^2 j^2 (i + j) (i j - k^2)^2, i (j^2 + k^2),j (i^2 + k^2), (i + j) (k^2-i j),2 (i + j) k^2]$,面积是$S=i jk (i + j) (k^2-i j)$

所以说,我们可以对半周长进行分解,分解成$\frac{L}{2}= j (i j + k^2),i<j<k$或者$\frac{L}{2}=(i + j) k^2, i<j<k,ij<k^2$,只需要限定$gcd(i,j,k)=1$
事实上,只需要考虑第一个解,因为第二个解被第一个解包含进去了。
。。。
也就是说,我们对半周长进行分解,分解成$\frac{L}{2}= j (i j + k^2),i<j<k$,面积是$S=i j k (j-i)(i j + k^2)$,三边是$[i (j^2 + k^2),  j (i^2 + k^2), (j-i) (i j + k^2)]$, 只需要限定$gcd(i,j,k)=1$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
我挑选了一部分输出的优秀解,试验了一下,发现对应三角形内切圆半径要么是整数,要么分母是素数,不知道是否总是成立。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
如果查看前面已经找到的优秀数据,可以发现内接圆半径是整数的比例非常高。
而对于内接圆半径是整数的情况,大部分场景半周长是三个或四个不同素数的乘积,而且内接圆半径和半周长互素。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 3 天前 | 显示全部楼层
我不确定是否要捡起 之前的椭圆曲线的方法,  因为之前的椭圆曲线的方法有一个很好的特征,就是 给定周长和面积, 唯一确定一条椭圆曲线, 对于该椭圆曲线, 其秩基本上跟解的个数 相当. 周长L,面积S对应的椭圆曲线是 $Y^2= -\frac{1}{48} L^4 X \left(L^4-24 S^2\right)+\frac{1}{864} L^4 \left(L^8-36 L^4 S^2+216 S^4\right)+X^3$
我刚才又测试了一下, 拿那个8组解的为例, $L=721786, S=13338605280$, 秩为7. 瞬间给出7个生成元.

  1. E=ellinit([-12693394974858489906001/3,2855319653729016837546676404344498/27])
  2. %11 = [0, 0, 0, -12693394974858489906001/3, 2855319653729016837546676404344498/27, 0, -25386789949716979812002/3, 11421278614916067350186705617377992/27, -161122275987762763592862656596653605815812001/9, 203094319597735838496016, -91370228919328538801493644939023936, 16535957613113937235108867376892012004454523086428107177984000000, 120564527471242839032838375966526083395690401/237988279160426028378126972616704000000, Vecsmall([1]), [Vecsmall([128, 1])], [0, 0, 0, 0, 0, 0, 0, 0]]

  3. ellrank(E,1)
  4. %12 = [7, 7, 0, [[-166027186751/3, 13054191586359000], [-32496620351/3, 12260263348733400], [93823415689/3, 2003871483863040], [320862387547/9, 12679875082388800/27], [11173263416731/9, 37297965934570781440/27], [72976429912633/1875, 2789962258736068416/15625], [1095660492472393/28227, 17053651951448555520/912673]]]
复制代码


如果能通过某种参数,直接给出多解的 周长和面积, 就好了

目前这种给定周长和面积的方式 导致搜索空间太大了.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-7-19 14:07 , Processed in 0.028425 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表