数学研发论坛

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

[原创] 六边形上19个黑点上不同数字求所有的解!

[复制链接]
发表于 2019-5-12 09:47:43 | 显示全部楼层
  1. {{{2, 19, 1}, {2, 17, 3}, {1, 18, 3}}, {{2, 17, 3}, {2, 15, 5}, {3,
  2.     14, 5}}, {{2, 15, 5}, {2, 9, 11}, {5, 6, 11}}, {{2, 9, 11}, {2,
  3.     16, 4}, {11, 7, 4}}, {{2, 16, 4}, {2, 12, 8}, {4, 10, 8}}, {{2,
  4.     12, 8}, {2, 19, 1}, {8, 13,
  5.     1}}} // (Map[If[# < 10, " ", ""] <> ToString[#] &, #, {-1}] //
  6.     StringReplace[
  7.       "  #1━#2━#3\n / \  / \\n #4  #5 #6 #7\n/   \ /  \\n\
  8. #8━#9━#a━#b━#c\n\  /  \  /\n #d #e  #f #g\n \ /  \ /\n  #h━#i━#j\n", \
  9. {"#a" -> #[[1, 1, 1]], "#b" -> #[[1, 1, 2]], "#c" -> #[[1, 1, 3]],
  10.        "#7" -> #[[1, 3, 2]], "#6" -> #[[2, 1, 2]],
  11.        "#3" -> #[[2, 1, 3]], "#2" -> #[[2, 3, 2]],
  12.        "#5" -> #[[3, 1, 2]], "#1" -> #[[3, 1, 3]],
  13.        "#4" -> #[[3, 3, 2]], "#9" -> #[[4, 1, 2]],
  14.        "#8" -> #[[4, 1, 3]], "#d" -> #[[4, 3, 2]],
  15.        "#e" -> #[[5, 1, 2]], "#h" -> #[[5, 1, 3]],
  16.        "#i" -> #[[5, 3, 2]], "#f" -> #[[6, 1, 2]],
  17.        "#j" -> #[[6, 1, 3]], "#g" -> #[[6, 3, 2]]}] &) &
复制代码


   5━14━ 3
 / \  / \
  6  15 17 18
/   \ /  \
11━ 9━ 2━19━ 1
\  /  \  /
  7 16  12 13
 \ /  \ /
   4━10━ 8
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-5-12 11:00:38 | 显示全部楼层
sum=[22-29,31-38]有解

1-19.zip

69.78 KB, 下载次数: 6, 下载积分: 金币 -1 枚, 经验 1 点, 下载 1 次

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-5-12 14:19:48 | 显示全部楼层
受到mathe的手工求解的启发。我也写了一个程序, 耗时的地方主要是整数的拆分

  1. Flatten[Table[Select[Flatten[Table[Table[Table[{tmp={s[[1]],k,S-2MovingAverage[PadRight[k,7,First[k]],2],S-s[[1]]-k};{S,s[[1]],k},Union[Flatten[tmp]]},{k,Flatten[Table[Join[c,cc],{c,Flatten[List[First[t],#]]&/@Subsets[Rest[t],{2}]},{cc,Permutations[Complement[t,c]]}],1]}],{t,s[[2]]}],{s,Table[{2i,Select[IntegerPartitions[6S-Binomial[20,2]/2-5i,{6}],Length[Union[#]]==6 &&Not@MemberQ[#,2i]&&Max[#]<20&]},{i,(6S-Binomial[20,2]/2-Binomial[7,2])/5}]}],2],Length[Last[#]]==19&&Min[Last[#]]==1&][[All,1]],{S,22,31}],1]
复制代码

  1. {22,4}
  2. {23,2}
  3. {24,6}
  4. {25,8}
  5. {26,3}
  6. {27,7}
  7. {28,1}
  8. {29,4}
  9. {30,0}
  10. {31,4}
  11. {32,3}
  12. {33,8}
  13. {34,3}
  14. {35,6}
  15. {36,4}
  16. {37,1}
  17. {38,6}
复制代码


数据结构是中心数A,六个顶点的数【按照逆(顺)时针排列】。
为了消除旋转对称性,约定六个顶点中最大的数字是1号位。为了消除纸内纸外的翻转对称性,约定2号位比3号位要大。计算结果如下:

  1. {22,2,{11,5,3,1,8,4}}
  2. {22,2,{9,8,4,3,1,7}}
  3. {22,2,{9,7,1,3,4,8}}
  4. {22,4,{10,3,1,2,6,5}}
  5. {23,6,{10,8,4,2,3,1}}
  6. {23,6,{10,8,3,1,4,2}}
  7. {24,2,{15,8,4,9,5,3}}
  8. {24,4,{12,11,6,5,3,2}}
  9. {24,4,{12,11,3,2,6,5}}
  10. {24,6,{13,3,2,4,11,1}}
  11. {24,8,{12,5,1,6,2,3}}
  12. {24,8,{12,3,2,6,1,5}}
  13. {25,2,{16,8,4,11,5,6}}
  14. {25,2,{16,6,5,11,4,8}}
  15. {25,4,{16,8,3,10,6,2}}
  16. {25,4,{14,10,6,2,5,8}}
  17. {25,4,{14,8,5,2,6,10}}
  18. {25,8,{14,7,5,1,6,2}}
  19. {25,8,{12,10,1,6,2,4}}
  20. {25,8,{12,4,2,6,1,10}}
  21. {26,4,{16,8,3,5,10,9}}
  22. {26,8,{14,11,6,3,5,2}}
  23. {26,8,{14,11,5,2,6,3}}
  24. {27,2,{17,7,6,10,13,9}}
  25. {27,6,{19,7,4,10,9,3}}
  26. {27,6,{19,5,4,8,9,7}}
  27. {27,8,{18,6,2,9,7,5}}
  28. {27,8,{17,9,7,5,3,6}}
  29. {27,8,{17,6,3,5,7,9}}
  30. {27,8,{15,9,2,6,14,1}}
  31. {28,4,{16,11,5,6,15,10}}
  32. {29,4,{18,10,6,11,16,8}}
  33. {29,10,{18,7,3,11,13,2}}
  34. {29,12,{16,11,3,7,4,8}}
  35. {29,12,{16,8,4,7,3,11}}
  36. {31,8,{17,9,4,12,16,13}}
  37. {31,10,{19,8,6,14,16,3}}
  38. {31,16,{14,10,2,12,4,9}}
  39. {31,16,{14,9,4,12,2,10}}
  40. {32,16,{15,14,10,5,9,4}}
  41. {32,16,{15,14,5,10,4,9}}
  42. {32,16,{15,9,4,10,5,14}}
  43. {33,12,{18,14,2,15,13,11}}
  44. {33,12,{17,15,13,11,3,14}}
  45. {33,12,{17,14,3,11,13,15}}
  46. {33,14,{17,11,10,16,13,1}}
  47. {33,14,{16,15,1,13,11,12}}
  48. {33,14,{16,12,11,13,1,15}}
  49. {33,18,{14,13,3,11,7,10}}
  50. {33,18,{14,10,7,11,3,13}}
  51. {34,12,{18,15,9,6,17,14}}
  52. {34,16,{17,15,10,11,4,12}}
  53. {34,16,{17,12,4,11,10,15}}
  54. {35,12,{19,10,8,16,18,14}}
  55. {35,12,{19,15,13,6,18,14}}
  56. {35,16,{18,14,10,17,12,4}}
  57. {35,16,{18,15,12,6,10,14}}
  58. {35,16,{18,14,10,6,12,15}}
  59. {35,18,{16,12,4,14,15,9}}
  60. {36,12,{19,15,8,17,18,14}}
  61. {36,16,{18,17,15,14,9,8}}
  62. {36,16,{18,17,9,8,15,14}}
  63. {36,18,{17,15,11,16,12,5}}
  64. {37,14,{19,17,12,10,18,16}}
  65. {38,16,{19,18,14,15,10,17}}
  66. {38,16,{19,17,10,15,14,18}}
  67. {38,18,{19,17,15,13,16,8}}
  68. {38,18,{19,17,15,9,16,12}}
  69. {38,18,{19,17,16,12,11,13}}
  70. {38,18,{19,13,11,12,16,17}}
复制代码

点评

是有问题的,见后面的帖子  发表于 2019-5-12 20:34
代码漂亮,请审查是否有误  发表于 2019-5-12 19:34
那个是程序直接输出的,方便后续的过滤。已经采纳你的建议,手工删除  发表于 2019-5-12 14:52

评分

参与人数 1威望 +2 金币 +2 贡献 +2 经验 +2 鲜花 +2 收起 理由
王守恩 + 2 + 2 + 2 + 2 + 2 一目了然!!!(建议:后面12个是画蛇添足.

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-5-12 15:03:14 | 显示全部楼层
本帖最后由 王守恩 于 2019-5-12 18:37 编辑
wayne 发表于 2019-5-12 14:19
受到mathe的手工求解的启发。我也写了一个程序, 耗时的地方主要是整数的拆分,代码暂时不能上传,被论坛的 ...


谢谢wayne! 可以改一下吗?改成这样:
六个顶点按从小到大排列:1号位是最小的,最小数的两边总有一个数是比较小的,摆2号位。或
六个顶点按从大到小排列:1号位是最大的,最大数的两边总有一个数是比较大的,摆2号位。
3,4,5,6号位随着1,2号位的方向走,这样就不存在 “逆(顺)时针”问题,答案就是唯一的了。

点评

是两个数的最大数  发表于 2019-5-12 20:33
谢谢wayne!最大的不一定排在末位。  发表于 2019-5-12 18:38
1并不一定在六个顶点上  发表于 2019-5-12 15:07
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-5-12 18:04:13 | 显示全部楼层
恩,稍微改改,六个顶点的最小数排在1号位,与之相邻的两个数中最小的排在2号位,最大的排在末位。
  1. ans=Flatten[Table[Select[Flatten[Table[Table[Table[{tmp={s[[1]],k,S-2MovingAverage[PadRight[k,7,First[k]],2],S-s[[1]]-k};{S,s[[1]],k},Union[Flatten[tmp]]},{k,Flatten[Table[Flatten[{c[[1;;2]],cc,c[[3]]}],{c,Flatten[{First[t],#}]&/@Sort/@Subsets[Rest[t],{2}]},{cc,Permutations[Complement[t,c]]}],1]}],{t,s[[2]]}],{s,Table[{2i,Select[Sort/@IntegerPartitions[6S-Binomial[20,2]/2-5i,{6}],Length[Union[#]]==6 &&Not@MemberQ[#,2i]&&Max[#]<20&]},{i,(6S-Binomial[20,2]/2-Binomial[7,2])/5}]}],2],Length[Last[#]]==19&&Min[Last[#]]==1&][[All,1]],{S,22,31}],1]
复制代码

  1. {22,4}
  2. {23,2}
  3. {24,6}
  4. {25,6}
  5. {26,4}
  6. {27,11}
  7. {28,5}
  8. {29,8}
  9. {31,8}
  10. {32,5}
  11. {33,11}
  12. {34,4}
  13. {35,6}
  14. {36,6}
  15. {37,2}
  16. {38,4}
复制代码

  1. {22,2,{1,3,5,7,4,12}}
  2. {22,2,{1,3,5,11,4,8}}
  3. {22,2,{1,3,4,8,9,7}}
  4. {22,4,{1,2,6,5,10,3}}
  5. {23,6,{1,3,8,10,2,4}}
  6. {23,6,{1,3,2,4,8,10}}
  7. {24,2,{3,5,9,4,8,15}}
  8. {24,4,{2,3,11,12,5,6}}
  9. {24,4,{2,3,5,6,11,12}}
  10. {24,6,{1,4,2,13,3,11}}
  11. {24,6,{1,11,4,2,3,13}}
  12. {24,8,{1,5,12,3,2,6}}
  13. {25,2,{4,8,7,17,5,9}}
  14. {25,2,{4,8,16,6,5,11}}
  15. {25,4,{2,6,10,3,8,16}}
  16. {25,4,{2,5,8,14,10,6}}
  17. {25,8,{1,5,7,14,2,6}}
  18. {25,8,{1,6,2,4,12,10}}
  19. {26,4,{3,5,10,9,16,8}}
  20. {26,8,{1,6,2,13,4,15}}
  21. {26,8,{2,5,11,14,3,6}}
  22. {26,8,{2,5,3,6,11,14}}
  23. {27,2,{6,7,17,9,13,10}}
  24. {27,6,{3,8,4,11,7,19}}
  25. {27,6,{3,9,10,4,7,19}}
  26. {27,6,{4,5,19,7,9,8}}
  27. {27,8,{2,6,18,5,7,9}}
  28. {27,8,{3,5,7,9,17,6}}
  29. {27,8,{1,7,6,16,2,15}}
  30. {27,8,{1,15,7,6,2,16}}
  31. {27,8,{1,14,6,2,9,15}}
  32. {27,14,{1,7,4,10,2,8}}
  33. {27,14,{1,7,2,8,4,10}}
  34. {28,4,{5,6,15,10,16,11}}
  35. {28,4,{5,6,10,15,11,16}}
  36. {28,8,{1,14,4,17,2,15}}
  37. {28,8,{1,14,2,15,4,17}}
  38. {28,10,{2,7,3,17,5,14}}
  39. {29,2,{8,14,11,17,9,15}}
  40. {29,2,{8,14,9,15,11,17}}
  41. {29,4,{6,10,18,8,16,11}}
  42. {29,10,{2,13,11,3,7,18}}
  43. {29,10,{1,12,14,6,4,17}}
  44. {29,12,{3,7,4,8,16,11}}
  45. {29,16,{2,10,5,6,4,12}}
  46. {29,16,{1,9,7,8,3,11}}
  47. {31,4,{9,17,12,13,11,19}}
  48. {31,4,{8,16,14,15,10,18}}
  49. {31,8,{4,9,17,13,16,12}}
  50. {31,10,{3,16,14,6,8,19}}
  51. {31,10,{2,13,17,9,7,18}}
  52. {31,16,{2,10,14,9,4,12}}
  53. {31,18,{3,9,6,12,5,11}}
  54. {31,18,{3,9,5,11,6,12}}
  55. {32,10,{3,15,6,18,13,17}}
  56. {32,12,{3,16,6,19,5,18}}
  57. {32,12,{3,16,5,18,6,19}}
  58. {32,16,{4,9,15,14,5,10}}
  59. {32,16,{4,9,5,10,14,15}}
  60. {33,6,{10,16,13,19,12,18}}
  61. {33,6,{10,16,12,18,13,19}}
  62. {33,12,{4,14,13,19,5,18}}
  63. {33,12,{4,18,14,13,5,19}}
  64. {33,12,{5,11,18,14,6,19}}
  65. {33,12,{2,14,18,11,13,15}}
  66. {33,12,{3,11,13,15,17,14}}
  67. {33,14,{1,13,9,16,12,17}}
  68. {33,14,{1,13,16,10,11,17}}
  69. {33,14,{1,13,11,12,16,15}}
  70. {33,18,{3,11,7,10,14,13}}
  71. {34,12,{5,16,7,18,14,19}}
  72. {34,12,{6,9,15,18,14,17}}
  73. {34,12,{6,9,14,17,15,18}}
  74. {34,16,{4,11,10,15,17,12}}
  75. {35,12,{8,10,19,14,18,16}}
  76. {35,12,{6,13,15,19,14,18}}
  77. {35,16,{4,12,17,10,14,18}}
  78. {35,16,{6,10,14,18,15,12}}
  79. {35,18,{4,12,16,9,15,14}}
  80. {35,18,{3,13,12,16,11,15}}
  81. {36,12,{8,15,19,14,18,17}}
  82. {36,14,{7,17,9,19,16,18}}
  83. {36,14,{7,17,18,16,9,19}}
  84. {36,16,{8,9,17,18,14,15}}
  85. {36,16,{8,9,14,15,17,18}}
  86. {36,18,{5,12,16,11,15,17}}
  87. {37,14,{10,12,17,19,16,18}}
  88. {37,14,{10,12,16,18,17,19}}
  89. {38,16,{10,15,14,18,19,17}}
  90. {38,18,{8,16,13,15,17,19}}
  91. {38,18,{9,15,17,19,12,16}}
  92. {38,18,{11,12,16,17,19,13}}
复制代码

评分

参与人数 1威望 +12 金币 +12 贡献 +12 经验 +12 鲜花 +12 收起 理由
王守恩 + 12 + 12 + 12 + 12 + 12 好!!!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-5-12 18:31:00 | 显示全部楼层

大佬!这个比较漂亮!何种语言写的?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-5-12 18:35:28 | 显示全部楼层
期待C或python写的代码

点评

我看您是来问作业的?  发表于 2019-5-12 18:40
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-5-12 18:43:32 | 显示全部楼层
markfang2050 发表于 2019-5-12 18:35
期待C或python写的代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-5-12 19:16:47 | 显示全部楼层
wayne 发表于 2019-5-12 18:04
恩,稍微改改,六个顶点的最小数排在1号位,与之相邻的两个数中最小的排在2号位,最大的排在末位。

能直接输出图吗?我想了很久。

点评

我看看,好像没别的方法就是Graphics  发表于 2019-5-12 20:37
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-5-12 20:11:42 | 显示全部楼层
如果两数之和等于20,就称为彼此的互补数。
显然,互补替换保持这种异形幻六方的等和性,只是定和(幻方数)有变化,前后幻方数之和等于60。
可见幻方数之和为60的幻方是一一对应的,故实际上只需要搜索幻方数在30以内的幻方。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2019-5-25 08:48 , Processed in 0.100151 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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