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

[原创] 广场上四只狗两种距离

[复制链接]
发表于 2024-3-11 09:44:18 | 显示全部楼层
mathe 发表于 2024-3-11 08:07
这个问题不算太难,关键是要如何分析才能不漏解。
四只狗两种距离,我们可以分类分析
i)有一只狗A到另外三 ...

关于如何没有遗漏的分析.
因为 6个距离只有两个不同的值,那么至少有三个距离相同。三个线段构成无回路的骨架结构需要4个点,构成闭环虽然三个点,但因为高度对称,所以只需要考虑一条边的对称轴,这就全了。
1) 三个相等的距离(边)构成等边三角形,第4只狗就在一条边的对称轴上取,容易发现有4种情况。
2) 三个相等的距离(边)构成开链的折线,但因为只有两个值,所以只能对称。于是就有了正方形,等腰梯形 这两种情况。还有一个是度为3的点,三边共一点,那就只能是等边三角形,跟情况1等价.  
所以总共是 4+2+1-1 = 6 种.

评分

参与人数 1威望 +8 金币 +8 贡献 +8 经验 +8 鲜花 +8 收起 理由
northwolves + 8 + 8 + 8 + 8 + 8 很给力!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-3-11 16:26:46 | 显示全部楼层
mathe 发表于 2024-3-11 08:27
上面分析方法还是有点烧脑子,那么是否可以有机械一些的方案呢?
题目中总共有四只狗,可以用A,B,C,D四个点 ...

A131628                Maximal size of an n-distance set in the plane.               

1, 3, 5, 7, 9, 12, 13

n=2就已经如此复杂了,想来这个序列证实也不容易
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-3-11 16:29:18 | 显示全部楼层
与下面的序列前7项都相同

A191749                Numbers not the sum of a smaller number and its prime factors (with multiplicity).               

1, 3, 5, 7, 9, 12, 13, 16, 18, 20, 21, 25, 27, 28, 30
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-11 17:19:05 | 显示全部楼层
mathe 发表于 2024-3-11 08:27
上面分析方法还是有点烧脑子,那么是否可以有机械一些的方案呢?
题目中总共有四只狗,可以用A,B,C,D四个点 ...

有一种笨办法,胜在比较“机械”。就是利用完全四点形的边长约束
\[\begin{vmatrix}
0&1&1&1&1\\
1&0&d^2_{12}&d^2_{13}&d^2_{14}\\
1&d^2_{21}&0&d^2_{23}&d^2_{24}\\
1&d^2_{31}&d^2_{32}&0&d^2_{34}\\
1&d^2_{41}&d^2_{42}&d^2_{43}&0\\
\end{vmatrix}=0\tag1\]
两种长度的边数分配有3种:{1, 5}, {2, 4}, {3, 3},不妨设多数边的长度设为1,少数边的长度设为`x`,
代入(1)即可得到关于 `x`的方程,解出`x`代入模型即得结果。

一、比如对于{1, 5}分配,不妨设`d_{34}=d_{43}=x>0`, 其它5条边长为1,代入(1)即
\[\begin{vmatrix}
0&1&1&1&1\\
1&0&1&1&1\\
1&1&0&1&1\\
1&1&1&0&x^2\\
1&1&1&x^2&0\\
\end{vmatrix}=0\]
行列式用MMA展开,方程为 `2x^2(3-x^2)=0`, 因`x>0`,  方程有唯一解`x=\sqrt3`。
{1, 5}分配的模型显然是唯一的,所以只有一种图形。

二、{2, 4}分配有两种模型: 1、`x`长两边相接,2、`x`长两边相对
模型1  不妨取`d_{24}=d_{42}=d_{34}=d_{43}=x`,代入(1)即
\[\begin{vmatrix}
0&1&1&1&1\\
1&0&1&1&1\\
1&1&0&1&x^2\\
1&1&1&0&x^2\\
1&1&x^2&x^2&0\\
\end{vmatrix}=2(x^4-4 x^2+1) = 0\]
解方程得到`x=\sqrt{2±\sqrt{3}}=\frac{\sqrt6±\sqrt2}2`,结果模型1有2种图形。

模型2 不妨取`d_{12}=d_{21}=d_{34}=d_{43}=x`,代入(1)即
\[\begin{vmatrix}
0&x^2&1&1&1\\
x^2&0&1&1&1\\
1&1&0&1&1\\
1&1&1&0&x^2\\
1&1&1&x^2&0\\
\end{vmatrix}=4 x^4 (x^2-2) =0\]解方程得到$x=\sqrt{2}$

三、{3, 3}分配有两种模型:
模型1、三组相对边皆为{1, x},这时一组等长三边相接于一点,另一组等长三边构成正三角形,
    这时不妨取`d_{12}=d_{13}=d_{14}=x`,代入(1)得到方程$2 (-1+3 x^2) = 0$, 解得是$x=\frac{1}{\sqrt{3}}$
模型2、三组相对边为{1, 1}, {1, x}, {x, x}, 这时两组等长三边皆构成开环折线。
    这时不妨取`d_{12}=d_{23}=d_{34}=x`,代入(1)得到方程$-2 (x^2+1) (x^2-x-1) (x^2+x-1)=0$, 解得$x=\frac{1}{2} (\sqrt{5}+-1)$。
    这个模型的两段开环折线互为对称, 方程两根互为倒数实则是一种图形。

所以,总共有1+2+1+1+(2-1) = 6组解。
  1. With[{d12=1,d13=1,d14=1,d23=1,d24=x, d34=x},FullSimplify@Solve[Factor[Det[{{0,1,1,1,1},{1,0,d12^2,d13^2,d14^2},{1,d12^2,0,d23^2,d24^2},{1,d13^2,d23^2,0,d34^2},{1,d14^2,d24^2,d34^2,0}}]]==0&&x>0,x]]
复制代码

点评

nyy
可以假设最短边=1,然后求另外一边的长度  发表于 2024-3-12 13:33

评分

参与人数 3威望 +32 金币 +8 贡献 +8 经验 +8 鲜花 +32 收起 理由
northwolves + 8 + 8 + 8 + 8 + 8 赞一个!
wayne + 12 + 12 神马都是浮云
mathe + 12 + 12 很给力!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-12 08:46:23 | 显示全部楼层
意犹未尽,总感觉特别的像化学里的分子结构式,要不,我再推波助澜一下。
1)证明:平面内$n$个不同的点的完全连接图的$C_n^2$个边最少可构成$\floor{\frac{n}{2}}$个不等长的边。
2)求解:平面内$n$个不同的点的完全连接图的$C_n^2$个边所构成的$\floor{\frac{n}{2}}$个不等长的边的所有可能的构图总共有几种,忽略平面图的平移,旋转,翻转的对称性。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-12 10:36:12 | 显示全部楼层

如何无重复地遍历

wayne 发表于 2024-3-11 09:44
关于如何没有遗漏的分析.
我的分析是这样的,因为 6个距离只有两个不同的值,那么,鸽巢原理,至少有三个距离 ...

可以把完全四点形的6条边划分为三组对边{{12, 34}, {13, 24}, {14, 23}}。
不妨令多数边长度为1,少数边长度为 x, 则共有以下五种情况:
1、{{1, 1}, {1, 1}, {1, x}},三组对边的排序变化及组内对边互易,完全四点形模型保持不变。
2、{{1, 1}, {1, 1}, {x, x}},三组对边的排序变化及组内对边互易,完全四点形模型保持不变。
3、{{1, 1}, {1, x}, {1, x}},三组对边的排序变化及组内对边互易,完全四点形模型保持不变。
4、{{1, 1}, {1, x}, {x, x}},三组对边的排序变化及组内对边互易,完全四点形模型保持不变。
5、{{1, x}, {1, x}, {1, x}},三组对边的排序变化及组内对边互易,完全四点形模型保持不变。
然后分别代入14#的方程(1)解出x.

点评

这是要 当作 四面体看待了  发表于 2024-3-12 11:34

评分

参与人数 1鲜花 +12 收起 理由
wayne + 12 赞一个!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-12 11:36:22 | 显示全部楼层
hujunhua 发表于 2021-3-31 01:00
挖个坟

1、如果再多一只狗,是否只有正五边形一种占位图?

5条狗2个边是只有正五边形这一种吧。
5条狗3个边 该怎么办,是不是要$C_5^4$个四面体的体积为0.
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-12 11:48:41 | 显示全部楼层
  1. Clear["Global`*"];(*Clear all variables*)
  2. (*子函数,四面体体积因子,a,b,c分别是从一个顶点出发的三条棱,x,y,z分别是对棱*)
  3. fun[a_,b_,c_,x_,y_,z_]:=Det[{{0,1,1,1,1},{1,0,a^2,b^2,c^2},{1,a^2,0,z^2,y^2},{1,b^2,z^2,0,x^2},{1,c^2,y^2,x^2,0}}]
  4. (*子函数,给定一个四面体六条棱的数组,让四面体体积因子等于零,计算出x的值,并且只计算正实数根,返回数组与求解结果*)
  5. sol[list_]:=Module[{out},  out=FullSimplify@Solve[fun@@list==0&&x>0, {x}, Reals]; {list, out}]
  6. aaa=Tuples[{1,x},6]; (*形成所有的可能*)
  7. bbb=sol/@aaa; (*针对所有可能,求解结果*)
  8. Grid[bbb,Alignment->Right](*列表显示*)
复制代码

穷举法解决问题:针对这64种情况,一个一个筛选!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-12 12:38:18 | 显示全部楼层
nyy 发表于 2024-3-12 11:48
穷举法解决问题:
针对这64种情况,一个一个筛选!
\[\begin{array}{rr}

  1. Clear["Global`*"];(*Clear all variables*)
  2. (*子函数,四面体体积公式,a,b,c分别是从一个顶点出发的三条棱,x,y,z分别是对棱*)
  3. fun[a_,b_,c_,x_,y_,z_]:=Sqrt[Det[{{0,1,1,1,1},{1,0,a^2,b^2,c^2},{1,a^2,0,z^2,y^2},{1,b^2,z^2,0,x^2},{1,c^2,y^2,x^2,0}}]/288]
  4. (*子函数,给定一个四面体六条棱的数组,让四面体体积等于零,计算出x的值,并且只计算正实数根,返回求解结果*)
  5. sol[list_]:=Module[{},FullSimplify@Solve[fun@@list==0&&x>=1,{x},Reals]]
  6. (*假设四面体的最小的棱的长度=1,由于相似,总可以做到*)
  7. aaa=Tuples[{1,x},6];(*形成所有的可能*)
  8. bbb=Select[aaa,sol[#]=!={}&];(*选择当中有意义的*)
  9. ccc={#,sol[#]}&/@bbb;(*对有意义的,每一个求解出结果*)
  10. Grid[ccc,Alignment->Right](*列表显示*)
复制代码


再简化一下,假设最短边是1,然后求解,这样有49种情况。应该还有相同的。但是工作量少了不少。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-3-12 12:47:56 | 显示全部楼层
nyy 发表于 2024-3-12 12:38
再简化一下,假设最短边是1,然后求解,这样有49种情况。应该还有相同的。但是工作量少了不少。
\[\beg ...


继续优化上面的代码!

  1. Clear["Global`*"];(*Clear all variables*)
  2. (*子函数,四面体体积公式,a,b,c分别是从一个顶点出发的三条棱,x,y,z分别是对棱*)
  3. fun[a_,b_,c_,x_,y_,z_]:=Sqrt[Det[{{0,1,1,1,1},{1,0,a^2,b^2,c^2},{1,a^2,0,z^2,y^2},{1,b^2,z^2,0,x^2},{1,c^2,y^2,x^2,0}}]/288]
  4. (*子函数,给定一个四面体六条棱的数组,让四面体体积等于零,计算出x的值,并且只计算正实数根,返回求解结果*)
  5. sol[list_]:=Module[{},Flatten@FullSimplify@Solve[fun@@list==0&&x>=1,{x},Reals]]
  6. (*假设四面体的最小的棱的长度=1,由于相似,总可以做到*)
  7. aaa=Tuples[{1,x},6];(*形成所有的可能*)
  8. bbb=Select[aaa,sol[#]=!={}&];(*选择当中有意义的*)
  9. ccc={#,sol[#]}&/@bbb;(*对有意义的,每一个求解出结果*)
  10. ddd=Sort[ccc,((x/.#1[[2]])<(x/.#2[[2]]))&];(*根据第二个元素从小到大排列*)
  11. Grid[ddd,Alignment->Right](*列表显示*)
复制代码


这次让输出结果排序更有秩序!

点评

nyy
根据输出结果,至少四种情况,也许只有四种情况  发表于 2024-3-12 12:48
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-27 07:26 , Processed in 0.076181 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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