wayne 发表于 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 种.

northwolves 发表于 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就已经如此复杂了,想来这个序列证实也不容易

northwolves 发表于 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

hujunhua 发表于 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>0` 的根 代入模型即得结果。

一、比如对于{1, 5}分配,不妨设`d_{34}=d_{43}=x`, 其它 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=\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}}=\D\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(3 x^2-1)= 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组解。
With[{d12=1,d13=1,d14=1,d23=1,d24=x, d34=x},FullSimplify@Solve]==0&&x>0,x]]

wayne 发表于 2024-3-12 08:46:23

意犹未尽,总感觉特别的像化学里的分子结构式,要不,我再推波助澜一下。
1)证明:平面内$n$个不同的点的完全连接图的$C_n^2$个边最少可构成$\floor{\frac{n}{2}}$个不等长的边。
2)求解:平面内$n$个不同的点的完全连接图的$C_n^2$个边所构成的$\floor{\frac{n}{2}}$个不等长的边的所有可能的构图总共有几种,忽略平面图的平移,旋转,翻转的对称性。

hujunhua 发表于 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.

wayne 发表于 2024-3-12 11:36:22

hujunhua 发表于 2021-3-31 01:00
挖个坟

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

5条狗2个边是只有正五边形这一种吧。
5条狗3个边 该怎么办,是不是要$C_5^4$个四面体的体积为0.

nyy 发表于 2024-3-12 11:48:41

Clear["Global`*"];(*Clear all variables*)
(*子函数,四面体体积因子,a,b,c分别是从一个顶点出发的三条棱,x,y,z分别是对棱*)
fun:=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}}]
(*子函数,给定一个四面体六条棱的数组,让四面体体积因子等于零,计算出x的值,并且只计算正实数根,返回数组与求解结果*)
sol:=Module[{out},out=FullSimplify@Solve; {list, out}]
aaa=Tuples[{1,x},6]; (*形成所有的可能*)
bbb=sol/@aaa; (*针对所有可能,求解结果*)
Grid(*列表显示*)

穷举法解决问题:针对这64种情况,一个一个筛选!

nyy 发表于 2024-3-12 12:38:18

nyy 发表于 2024-3-12 11:48
穷举法解决问题:
针对这64种情况,一个一个筛选!
\[\begin{array}{rr}


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


再简化一下,假设最短边是1,然后求解,这样有49种情况。应该还有相同的。但是工作量少了不少。

nyy 发表于 2024-3-12 12:47:56

nyy 发表于 2024-3-12 12:38
再简化一下,假设最短边是1,然后求解,这样有49种情况。应该还有相同的。但是工作量少了不少。
\[\beg ...

继续优化上面的代码!

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


这次让输出结果排序更有秩序!
页: 1 [2] 3
查看完整版本: 广场上四只狗两种距离