当前位置: 首页 > news >正文

使用DuckDB SQL求三阶六角幻方

六角幻方
https://zhuanlan.zhihu.com/p/544255474
原图如下:
在这里插入图片描述

条件:最外圈是3个在同一边的数之和相等,还要配上对角线的5个数相等,间隔1条边的两边中点连线上的4个数和相等。
根据横排5排的和都相等,可知这个和=38((1+19)*19/2/5)

with recursive n as(select i from range(1, 20)t(i)) --1 到 19 
, n3 as (select (1<<a)+(1<<b)m, * from(select n.i a,n1.i b, 38-n.i-n1.i c from n, n n1) where a<>b and a<>c and b<>c and c between 1 and 19 ) -- 找出和为38的三元组
,r as(select 1 lv,[a,b] s,n3.* from n3 -- 将和为38的三元组按首尾数字连成串
union all
select lv+1, s+ [n3.a,n3.b],n3.m+r.m,n3.a,n3.b,n3.c from r,n3 where r.c=n3.a and r.m&n3.m=0 and lv<6)
,t as(select * from r where lv=6 and c=s[1]) --串成闭环
,a as(select m, s,[38-s[12]-s[4],38-s[2]-s[6],38-s[4]-s[8],38-s[10]-s[6],38-s[12]-s[8],38-s[10]-s[2]]t from t) --算出每种排列中圈相邻两数和
,b as(select 1 lv,a.m+(1<<n.i)+(1<<n1.i) m,s+[n.i,n1.i] s,t,n1.i i from a,n,n n1 where a.m &(1<<n.i)=0 and a.m &(1<<n1.i)=0 and n.i+n1.i=t[1] and n.i<>n1.i -- 从剩余的数字中试拼
union all
select lv+1,m+(1<<n1.i),s+[n1.i],t,n1.i from b,n n1  where m &(1<<n1.i)=0 and n1.i+b.i=t[lv+1] and lv<5
)
select * from b where lv=5 --1 因为已知唯一解,这些都是对称、旋转后的结果
;
┌───────┬─────────┬──────────────────────────────────────────────────────────────────┬──────────────────────┬───────┐
│  lv   │    m    │                                s                                 │          t           │   i   │
│ int32 │  int64  │                             int64[]                              │       int64[]        │ int64 │
├───────┼─────────┼──────────────────────────────────────────────────────────────────┼──────────────────────┼───────┤
│     51048542[3, 19, 16, 12, 10, 13, 15, 14, 9, 11, 18, 17, 7, 2, 4, 8, 6, 1][9, 6, 12, 14, 7, 8]1 │
│     51048542[9, 14, 15, 13, 10, 12, 16, 19, 3, 17, 18, 11, 6, 8, 4, 2, 7, 1][14, 12, 6, 9, 8, 7]1 │
│     51048542[3, 17, 18, 11, 9, 14, 15, 13, 10, 12, 16, 19, 7, 1, 6, 8, 4, 2][8, 7, 14, 12, 6, 9]2 │
│     51048542[10, 13, 15, 14, 9, 11, 18, 17, 3, 19, 16, 12, 4, 8, 6, 1, 7, 2][12, 14, 7, 8, 9, 6]2 │
│     51048542[15, 14, 9, 11, 18, 17, 3, 19, 16, 12, 10, 13, 8, 6, 1, 7, 2, 4][14, 7, 8, 9, 6, 12]4 │
│     51048542[16, 19, 3, 17, 18, 11, 9, 14, 15, 13, 10, 12, 2, 7, 1, 6, 8, 4][9, 8, 7, 14, 12, 6]4 │
│     51048542[15, 13, 10, 12, 16, 19, 3, 17, 18, 11, 9, 14, 8, 4, 2, 7, 1, 6][12, 6, 9, 8, 7, 14]6 │
│     51048542[18, 17, 3, 19, 16, 12, 10, 13, 15, 14, 9, 11, 1, 7, 2, 4, 8, 6][8, 9, 6, 12, 14, 7]6 │
│     51048542[16, 12, 10, 13, 15, 14, 9, 11, 18, 17, 3, 19, 2, 4, 8, 6, 1, 7][6, 12, 14, 7, 8, 9]7 │
│     51048542[18, 11, 9, 14, 15, 13, 10, 12, 16, 19, 3, 17, 1, 6, 8, 4, 2, 7][7, 14, 12, 6, 9, 8]7 │
│     51048542[9, 11, 18, 17, 3, 19, 16, 12, 10, 13, 15, 14, 6, 1, 7, 2, 4, 8][7, 8, 9, 6, 12, 14]8 │
│     51048542[10, 12, 16, 19, 3, 17, 18, 11, 9, 14, 15, 13, 4, 2, 7, 1, 6, 8][6, 9, 8, 7, 14, 12]8 │
├───────┴─────────┴──────────────────────────────────────────────────────────────────┴──────────────────────┴───────┤
│ 12 rows                                                                                                 5 columns │
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
Run Time (s): real 0.242 user 0.265625 sys 0.125000
http://www.dtcms.com/a/461851.html

相关文章:

  • 电子商务网站建设一般流程无忧代理 在线
  • 一文了解Function Calling、MCP、Agent联系与区别
  • 存储芯片核心产业链主营产品:兆易创新、北京君正、澜起科技、江波龙、长电科技、佰维存储,6家龙头公司主营产品深度数据
  • Git 常用命令完整指南
  • 网站维护入口房子装修设计软件
  • MySQL 延时从库的作用与意义
  • h5网站价格wordpress footer.php添加qq悬浮
  • 【脚本升级】银河麒麟V10一键安装MySQL9.3.0
  • android pdf框架-15,mupdf工具与其它
  • 前端通用文件下载方案:从 Blob 流处理到实际业务落地
  • 箭头函数的this指向问题
  • 【Vue】——生命周期、ref属性、hooks
  • 网站服务器如何维护小米商城wordpress主题
  • 寻梦数据空间 | 架构篇:从概念到落地的技术实践与突破性创新
  • PySide6 文本编辑器(QPlainTextEdit)实现查找对话功能(匹配完整单词,区分大小写)——重构版本
  • golang面经——GMP相关
  • 谷歌英文网站简单的网站php开发教程
  • 免费一键自助建站官网域名及对应网站
  • AI编程Cursor最强竞争对手来了,CodeX三种操作系统喂饭级安装教程!
  • Spring Cloud Alibaba 最新五大核心组件
  • 融乐Mini1.9.3 | 支持在线播放,本地播放,内置两条线路,免费畅听全网音乐
  • 车行网站源码微信公众平台营销
  • 客户端加密 和 服务端加密:端到端安全的真正含义
  • 88-python电网可视化项目-8-1
  • 做网站要自己租服务器吗wordpress打开速度优化
  • 要看网站是多少建设一个网站需要哪些费用
  • 物联网时代下无锡漫途科技无线多参数遥测终端助力饮水安全监测
  • 公司网站建设款计什么科目wordpress jquery版本
  • 麒麟系统如何设置.sh文件的图标
  • 3D GPR切片图