数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ccmmjj

将五个数字连成一环,使得这些数以及相邻的二、三、四、五个数之和,分别等于 1~21

[复制链接]
 楼主| 发表于 2019-2-9 03:56 | 显示全部楼层
我通过手工计算,n=3时,是三个数(1,2,4)任意排列。
n=4时是(1,2,6,4)这四个顺序轮换。
n=5时答案如上,n=6时据你们计算机推算可以有五个解,好象n越大解就应该更多似的,如果到了n=7时反而无解,这说明了什么?难道在n>=7后就没有解的吗?会计算机的网友赶快编程算一下,从n=7算到n=10,当然越多越好,如果算到10都没有解,我就要猜测可能在n>=7后都没有解,就要试着下手进行无解的证明。如果是有的有解,有的无解,那情况就复杂了,想分清哪些有解、哪些无解,难度上远超一定有解或一定无解的证明。这绝不是白新岭讲的什么线性方程组那么简单。@天山草@ fungarwai 。

点评

您说得很对! n=3 和 n=4 时您的答案也对。 n = 7 时,刚计算了一下,确实没有解!  发表于 2019-2-9 11:27
发表于 2019-2-9 11:30 | 显示全部楼层
今天算了一下,证实了 n = 7 时无解! n 大于 7 时有没有解?估计够呛,无解的可能性很大!
发表于 2019-2-9 12:56 | 显示全部楼层


  ' 一条手串由七颗珠子穿成。每颗珠子上刻有一个数字。数字总和为 43。其中一个珠子上的数字是 1。各颗珠子上的数字集合记为{A1}={1,……}。
     ' 相邻两颗珠子上的数字和记为集合{A2},相邻三颗珠子上的数字和记为集合{A3},以此类推。全部七颗珠子上的数字和记为集合{A7}={43}。
     ' 若{A}={A1}+{A2}+{A3}+{A4}+{A5}+{A6}+{A7}={1,2,3,4,5,…,42,43},求每颗珠子上的数字是什么。
     ' 从刻有 1 的珠子开始,逆时针向转一周,设这七颗珠子上的数字依次是 1,x,y,z,u,v,t。
     ' x,y,z,u,v,t 的解集 {x},{y},{z},{u},{v},{t}都应小于{2,…,m}。那么 m 是多少呢?
     ' x、y、z、u、v、t 的和是 43-1 = 42,这六个数中必有一个是 2,所以其余五个的和是 42-2 = 40。那么这五个数中的最大者可能
     ' 大到多少呢?假定五个中的最大者其值有可能达到 m,则 3+4+5+6+m=40,因此 m 最大也不会超过 40-3-4-5-6=22。
     ' 下面用穷举法寻求 x、y、z、u、v、t 的值。
   
Private Sub form_Click()
     Open "七颗珠子.txt" For Output As #1
     
     Dim a(43)
     n = 43
     m = 22
     s = 0
     For x = 2 To m
      For y = 2 To m
       For z = 2 To m
        For u = 2 To m
         For v = 2 To m
        t = 43 - 1 - x - y - z - u - v
        a(1) = 1: a(2) = x: a(3) = y: a(4) = z: a(5) = u: a(6) = v: a(7) = t
        a(8) = 1 + x: a(9) = x + y: a(10) = y + z: a(11) = z + u: a(12) = u + v: a(13) = v + t: a(14) = t + 1
        a(15) = 1 + x + y: a(16) = x + y + z: a(17) = y + z + u: a(18) = z + u + v: a(19) = u + v + t:
        a(20) = v + t + 1: a(21) = t + 1 + x
        a(22) = 1 + x + y + z: a(23) = x + y + z + u: a(24) = y + z + u + v: a(25) = z + u + v + t:
        a(26) = u + v + t + 1: a(27) = v + t + 1 + x: a(28) = t + 1 + x + y
        a(29) = n - 1 - x: a(30) = n - x - y: a(31) = n - y - z: a(32) = n - z - u: a(33) = n - u - v:
        a(34) = n - v - t: a(35) = n - t - 1
        a(36) = n - 1: a(37) = n - x: a(38) = n - y: a(39) = n - z: a(40) = n - u: a(41) = n - v: a(42) = n - t
        a(43) = n
        
     For i = 1 To n - 1   '从小到大排序
          Min = i
        For j = i + 1 To n
         If a(j) < a(Min) Then Min = j
        Next j
        t = a(i)
       a(i) = a(Min)
       a(Min) = t
     Next i               '排序结束
     
     For i = 1 To n - 1   '寻找符合要求的排序,即结果为{1,2,3,…,43}的排序。
       If a(i) <= 0 Then GoTo 111         ' 小于等于零,舍弃。
       If a(i) = a(i + 1) Then GoTo 111   '相邻者数字相同,舍弃
     Next i
       If a(43) = a(1) Then GoTo 111      '首尾数字相同,舍弃
      
     s = s + 1   ' 符合条件的有一个,计数器加一。
     
     Print x, y, z, u, v, t        '显示符合条件的解
     Print #1, x, y, z, u, v, t
     
111: Next v
     Next u
     Next z
     Next y
     Next x
     Print "s="; s: Print #1, "s="; s
     Print " 无解!": Print #1, " 无解!"
      Close
      End Sub

程序运行 5 分钟,给出下面的结果:

s = 0
无解!
   

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2019-2-9 13:30 | 显示全部楼层
天山草@ 发表于 2019-2-9 12:56
' 一条手串由七颗珠子穿成。每颗珠子上刻有一个数字。数字总和为 43。其中一个珠子上的数字是 1。各 ...

谢谢天山草!辛苦了!我不会软件,只能干着急。
因为是环,我们不妨这样想:
1,数字总和 43。我们只要算出0——21即可。
   0对应43,1对应42,2对应41,3对应40,.......
2,7个数。只要算1个数,2个数,3个数即可。
  只要1个数的和是不同的,则6个数的和肯定是不同的
  只要2个数的和是不同的,则5个数的和肯定是不同的
  只要3个数的和是不同的,则4个数的和肯定是不同的
3,7个数动不了,但43换44,45,....试试。
发表于 2019-2-9 13:41 | 显示全部楼层
如果把 43 放大,换成大于等于 44,那么最后形成的数列就不会从 1,2,3,……一直连续到 44 了,中间必有缺位的。这样就不符合问题要求了。

原因是 n (n-1)+1 增加的太慢,下面的数字就没有生存空间了。戏就到此结束了。
发表于 2019-2-9 13:51 | 显示全部楼层
本帖最后由 天山草@ 于 2019-2-9 13:57 编辑

下面这个程序是用 mathematica 软件编写的。(作者为【数学研发论坛】的管理员 wayne)
n = 6;
arr = a /@ Range[n];
target = Flatten[{Total[arr],
    Table[Total[RotateLeft[arr, i][[1 ;; k]]], {i, 0, n - 1}, {k, 1,
      n - 1}]}];
data = Subsets[Range[n (n - 1)] + 2, {n - 2}];
Reap[Timing[
  Do[tmp = Select[Permutations[Join[{2}, d]],
     Length[Tally[
         Differences[Sort[target /. Thread[arr -> Join[{1}, #]]]]]] ==
        1 &]; If[Length[tmp] > 0, Sow[tmp]], {d, data}]]]

运行结果:(珠子上数字是 1 的未显示在结果中)



把程序第一行中的 n 赋以别的值,就有相应答案。但是 n=7 就不行了。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
发表于 2019-2-9 15:21 | 显示全部楼层
本帖最后由 王守恩 于 2019-2-9 15:25 编辑
天山草@ 发表于 2019-2-9 13:41
如果把 43 放大,换成大于等于 44,那么最后形成的数列就不会从 1,2,3,……一直连续到 44 了,中间必有 ...

这方程解不了了?
Solve[1+a+b+c+d+f+g==43 && a>0 && b>0 && c>0 && d>0 && f>0 && g>0 && 1!=a!=b!=c!=d!=f!=g
!=1+a!=a+b!=b+c!=c+d!=d+f!=f+g!=g+1!=1+a+b!=a+b+c!=b+c+d!=c+d+f!=d+f+g!=f+g+1!=g+1+b, {a, b, c, d, f, g}, Integers]

点评

这个方程不完全。没有全面反映题目的要求。  发表于 2019-2-9 15:52
发表于 2019-2-9 15:51 | 显示全部楼层
大于43肯定无解,既然6个数可以表示31个连续自然数,那用7个数字肯定能表示32-38之间的数39-43的数能不能表示需要验证,43当然就不用验证了。

点评

错了!第 7 个数把原来 "6个数的环" 破坏了。  发表于 2019-2-9 19:29
发表于 2019-2-9 15:59 | 显示全部楼层
本帖最后由 天山草@ 于 2019-2-9 16:28 编辑

这类问题从列方程、解方程的方面入手考虑,困难非常大。
解出那些未知数以后,还要面对它们如何排列的问题。

像下面这个四元的线性方程组,软件运行几小时可能也算不出来。而如果改用穷举法,几秒钟就能给出答案。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

点评

谢谢天山草@!  发表于 2019-2-9 19:24
发表于 2019-2-9 16:36 | 显示全部楼层
天山草@ 发表于 2019-2-8 04:35
我用 VB6 的编程思路如下:

' 一条手串由六颗珠子穿成。每颗珠子上刻有一个数字。数字总和为31。其中一 ...

好久没有看到天山草了,老兄过年好!
波浪在哥猜论坛中写出了一个李明波幂和猜想,望抽空评论。

点评

如果幂的次数大于等于 2,每个正整数都可以写成不超过 3 个高次幂的和(底数可以是 1),反例只有有限个。—— 不知你是怎样电算的?  发表于 2019-2-9 19:57
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2025-8-13 00:26 , Processed in 0.101497 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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