441010二十四点怎么算(一步一步教学)


数据库编程大赛:一条SQL计算扑克牌24点

12月27日,NineData和云数据库技术社区主办,华为云、火山引擎、开源中国、云和恩墨、TDengine、云猿生数据、DORIS、ITPUB等协办单位和媒体,联合举办了《数据库编程大赛》。大赛题目「用一条SQL给出扑克牌24点的计算表达式」。

以下亚军选手李家的张麻子的参赛情况简介:

参赛选手:李家的张麻子

参赛选手:李家的张麻子

个人简介:ETL工程师

参赛数据库:SQL Server

性能评测:百万级数据代码性能评测 5.52秒

综合得分:72.6

以下是李家的张麻子选手的代码思路说明:

选手采用了“人工”穷举算法。值得一提的是,该选手是少数成功使用ChatGPT生成SQL的参赛者。首先通过详细列举和排序的方式,全面呈现了所有可能性,并在此基础上由ChatGPT生成SQL代码,再进行适当调整。尽管这种方法稍显粗暴,但是打破常规,正确运用AI,也是一种新颖的方式。

以下是李家的张麻子选手的算法说明,结尾附完整SQL:

24点SQL编程大赛算法说明(暴力枚举)(SQL SERVER)

1、24点的有效数字组合是有限的,那么我们可以使用工具(例如ChatGPT),枚举所有的组合(减去一些重复组合)和一个解法,组成一个结果集。比如(1,1,8,1),(8,1,1,1),(1,8,1,1)(1,1,1,8),只需提取(1,1,1,8)这个组成一个字符数字’1118’,并附带一个解法,最后出的结果就是如下:

2、测试数据集中的数据,我们同样可以用以上的方法,使用工具或者人工将每一行数据使用case when方法全部罗列排序拼接,因为只有4个数字,那么就是24种情况,如下:

3、根据步骤2排序拼接得到的gs字段就是从小到大的排列后的数字,跟步骤以的结果集去匹配即可。

参赛完整SQL:

感谢大家对《数据库编程大赛》的关注和支持,欢迎加入技术交流群,更多精彩活动不断,我们下次再相聚!