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

[灌水] 你们有啥被骗的经历?

[复制链接]
 楼主| 发表于 2023-4-24 12:14:27 | 显示全部楼层
本帖最后由 nyy 于 2023-4-24 12:36 编辑
王守恩 发表于 2023-4-24 10:16
这样的四边形有6个。3种可能(3的对面只能是4,5,6),  每种可能2个解,共6个解。  a,b,c,d=4条边,    A,B,C, ...


进一步完善我的求解:
思路:
只要已知一条对角线的长度(假设为x),那么根据海伦公式,
就能求解出两个三角形的面积,两个三角形的面积相加等于四边形面积=18,然后求解方程(此处忽略凹四边形情况,已经求解过了,不存在凹四边形情况)

穷举所有情况:
{{3, 4, x, 5, 6}, {3, 4, x, 6, 5}, {3, 5, x, 4, 6}, {3, 5, x, 6, 4}, {3, 6, x, 4, 5}, {3, 6, x, 5, 4}}
其中
{3, 4, x, 5, 6}
表示AB=3,BC=4,AC=x,CD=5,DA=6

搞成矩阵形式
\[\begin{array}{lllll}
3 & 4 & x & 5 & 6 \\
3 & 4 & x & 6 & 5 \\
3 & 5 & x & 4 & 6 \\
3 & 5 & x & 6 & 4 \\
3 & 6 & x & 4 & 5 \\
3 & 6 & x & 5 & 4 \\
\end{array}\]


两个三角形的面积
\[\begin{array}{ll}
\frac{1}{4} \sqrt{-x^4+50 x^2-49} & \frac{1}{4} \sqrt{-x^4+122 x^2-121} \\
\frac{1}{4} \sqrt{-x^4+50 x^2-49} & \frac{1}{4} \sqrt{-x^4+122 x^2-121} \\
\frac{1}{4} \sqrt{-x^4+68 x^2-256} & \frac{1}{4} \sqrt{-x^4+104 x^2-400} \\
\frac{1}{4} \sqrt{-x^4+68 x^2-256} & \frac{1}{4} \sqrt{-x^4+104 x^2-400} \\
\frac{1}{4} \sqrt{-x^4+90 x^2-729} & \frac{1}{4} \sqrt{-x^4+82 x^2-81} \\
\frac{1}{4} \sqrt{-x^4+90 x^2-729} & \frac{1}{4} \sqrt{-x^4+82 x^2-81} \\
\end{array}\]

求解结果
\[\begin{array}{ll}
\{x\to 5\} & \left\{x\to \sqrt{\frac{221}{5}}\right\} \\
\{x\to 5\} & \left\{x\to \sqrt{\frac{221}{5}}\right\} \\
\left\{x\to 10 \sqrt{\frac{5}{17}}\right\} & \left\{x\to 2 \sqrt{13}\right\} \\
\left\{x\to 10 \sqrt{\frac{5}{17}}\right\} & \left\{x\to 2 \sqrt{13}\right\} \\
\left\{x\to 9 \sqrt{\frac{5}{13}}\right\} & \left\{x\to \frac{9 \sqrt{17}}{5}\right\} \\
\left\{x\to 9 \sqrt{\frac{5}{13}}\right\} & \left\{x\to \frac{9 \sqrt{17}}{5}\right\} \\
\end{array}\]

数值化
\[\begin{array}{ll}
\{x\to 5.\} & \{x\to 6.64831\} \\
\{x\to 5.\} & \{x\to 6.64831\} \\
\{x\to 5.42326\} & \{x\to 7.2111\} \\
\{x\to 5.42326\} & \{x\to 7.2111\} \\
\{x\to 5.58156\} & \{x\to 7.42159\} \\
\{x\to 5.58156\} & \{x\to 7.42159\} \\
\end{array}\]



所有代码如下:

  1. Clear["Global`*"];(*清除所有变量*)
  2. (*子函数,海伦公式,利用海伦公式计算三角形的面积*)
  3. heron[a_,b_,c_]:=Module[{p=(a+b+c)/2},Sqrt[p*(p-a)*(p-b)*(p-c)]]
  4. (*穷举四边以及对角线*)
  5. aaa={3,#[[1]],x,#[[2]],#[[3]]}&/@Permutations[{4,5,6}]
  6. Grid[aaa,Alignment->Left](*列表显示*)
  7. (*对于每一种情况,用海伦公式求出两个三角形面积*)
  8. bbb={heron[#1,#2,#3],heron[#3,#4,#5]}&@@@aaa//Simplify
  9. Grid[bbb,Alignment->Left](*列表显示*)
  10. (*要求两三角形面积相加=四边形面积=18,且对角线长度正数,且两个三角形面积非负*)
  11. ccc=Solve[(#[[1]]+#[[2]])==18&&x>0&&#[[1]]>=0&&#[[2]]>=0,x]&/@bbb
  12. Grid[ccc,Alignment->Left](*列表显示*)
复制代码



优化后的代码(优化后的代码可读性更强):
  1. Clear["Global`*"];(*清除所有变量*)
  2. (*子函数,海伦公式,利用海伦公式计算三角形的面积*)
  3. heron[a_,b_,c_]:=Module[{p=(a+b+c)/2},Sqrt[p*(p-a)*(p-b)*(p-c)]]
  4. (*穷举四边以及对角线,每一个元素表示{AB,BC,AC=x,CD,DA}*)
  5. aaa={3,#1,x,#2,#3}&@@@Permutations@{4,5,6}
  6. (*对于每一种情况,用海伦公式△ABC、△ACD的面积*)
  7. bbb={heron[#1,#2,#3],heron[#3,#4,#5]}&@@@aaa//Simplify
  8. (*要求两三角形面积相加=四边形面积=18,且对角线长度正数,且两个三角形面积非负*)
  9. ccc=Solve[(#1+#2)==18&&x>0&&#1>=0&&#2>=0,x]&@@@bbb
  10. Grid[aaa,Alignment->Left](*列表显示*)
  11. Grid[bbb,Alignment->Left](*列表显示*)
  12. Grid[ccc,Alignment->Left](*列表显示*)
复制代码

点评

nyy
ccc=Solve[(#1+#2)==18&&x>0&&#1>=0&&#2>=0,x]&@@@bbb代码可以进一步简化  发表于 2023-4-24 12:23
nyy
一行对应一种情况!  发表于 2023-4-24 12:15
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-4-24 18:07:51 | 显示全部楼层
nyy 发表于 2023-4-24 12:03
你这个人真操蛋!
只要已知一条对角线的长度(假设为x),那么根据海伦公式,
就能求解出两个三角形的 ...

谢谢 nyy!有道理!不需要4个方程。
这样的四边形有6个。3种可能(3的对面只能是4,5,6),  每种可能2个解,共6个解。  a,b,c,d=4条边,    A,C=2个对角。

\(\frac{a*b\sin(A)+c*d\sin(C)}{2*18}=\frac{a^2+b^2-2a*b\cos(A)}{c^2+d^2-2c*d\cos(C)}=1\)

  1. Table[Solve[{(a*b*Sin[A] + c*d*Sin[C])/(2*18) == (a^2 + b^2 - 2 a*b*Cos[A])/(c^2 + d^2 - 2 c*d*Cos[C]) == 1,
  2. \[Pi] > A > 0, \[Pi] > C > 0}, {A, C}], {a, 3, 3}, {b, 4, 4}, {c, 5, 5}, {d, 6, 6}] // FullSimplify
  3. {{{{{{A -> \[Pi]/2, C -> ArcTan[4/3]}, {A -> \[Pi] - ArcTan[3/4], C -> ArcTan[24/7]}}}}}}
复制代码

点评

nyy
你说的6个解,是把镜像相同的也合并了!不合并那么有12个  发表于 2023-4-25 09:02
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-4-25 08:45:19 | 显示全部楼层
王守恩 发表于 2023-4-24 18:07
谢谢 nyy!有道理!不需要4个方程。
这样的四边形有6个。3种可能(3的对面只能是4,5,6),  每种可能2个解, ...

我真受不了你,你写的代码太差了,
答案结果有6层大括号,直接让人吐死了!
还有居然把代码与结果放在一个代码框里面。
然后使用前居然没清除变量,也没注释,操,
这代码太操蛋了!居然用table,{a, 3, 3}, {b, 4, 4}, {c, 5, 5}, {d, 6, 6}
还不如直接在外面{a,b,c,d}={3,4,5,6}赋值,这样代码也好看。也减少嵌套!
代码太垃圾了!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-4-25 09:00:08 | 显示全部楼层
王守恩 发表于 2023-4-24 18:07
谢谢 nyy!有道理!不需要4个方程。
这样的四边形有6个。3种可能(3的对面只能是4,5,6),  每种可能2个解, ...

我来做个示范,把你的代码改造一下:
  1. Clear["Global`*"];(*清除所有变量*)
  2. {a,b,c,d}={3,4,5,6}(*四边形四边赋值*)
  3. ans=Solve[{
  4.     (*两个三角形面积相加等于四边形面积*)
  5.     1/2*(a*b*Sin[A]+c*d*Sin[C])==18,
  6.     (*用余弦定理来计算同一条对角线,是相等的*)
  7.     a^2+b^2-2*a*b*Cos[A]==c^2+d^2-2*c*d*Cos[C],
  8.     0<A<Pi&&0<C<Pi(*限制变量范围*)
  9. },{A,C},Method->Reduce]//FullSimplify
  10. Grid[ans,Alignment->Left](*列表显示*)
复制代码


求解结果
\[\left\{\left\{A\to \frac{\pi }{2},C\to 2 \cot ^{-1}(2)\right\},\left\{A\to 2 \tan ^{-1}(3),C\to 2 \tan ^{-1}\left(\frac{3}{4}\right)\right\}\right\}\]
矩阵形式的求解结果
\[\begin{array}{ll}
A\to \frac{\pi }{2} & C\to 2 \cot ^{-1}(2) \\
A\to 2 \tan ^{-1}(3) & C\to 2 \tan ^{-1}\left(\frac{3}{4}\right) \\
\end{array}\]

相对于你的代码,我的代码的优点如下:
1、一开头就清除所有变量,避免以前定义的变量对本次写的代码的干扰;
2、有注释,代码可读性更强
3、有缩进
4、输出结果不层层嵌套

然后求解结果用LaTeX来表达,更容易看清楚看明白!再写成矩阵形式,可读性更高!

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-4-29 12:24:23 | 显示全部楼层
nyy 发表于 2023-4-25 09:00
我来做个示范,把你的代码改造一下:

求通项:12, 127, 1277, 12777, 127777, 1277777, 12777777, 127777777, ...,
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2023-4-30 11:05:51 | 显示全部楼层
王守恩 发表于 2023-4-29 12:24
求通项:12, 127, 1277, 12777, 127777, 1277777, 12777777, 127777777, ...,


$a_n=\frac{23*10^n-14}{18}$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-5-4 10:05:00 | 显示全部楼层
王守恩 发表于 2023-4-29 12:24
求通项:12, 127, 1277, 12777, 127777, 1277777, 12777777, 127777777, ...,
  1. Clear["Global`*"];(*清除所有变量*)
  2. RSolve[{a[n]==a[n-1]*10+7,a[1]==12},a[n],n]
复制代码


求解结果
\[\left\{\left\{a(n)\to \frac{1}{18} \left(23\ 10^n-14\right)\right\}\right\}\]

评分

参与人数 1威望 +9 金币 +9 贡献 +9 经验 +9 鲜花 +9 收起 理由
王守恩 + 9 + 9 + 9 + 9 + 9 哦!还有RSolve这个玩意。

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2023-5-4 10:07:41 | 显示全部楼层
王守恩 发表于 2023-4-29 12:24
求通项:12, 127, 1277, 12777, 127777, 1277777, 12777777, 127777777, ...,

找到递推公式,然后用高中数学知识,方程两边同时加上7/9,
再根据等比数列知识,就能得到通项公式!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-25 08:05 , Processed in 0.054599 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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