- 博客(454)
- 资源 (14)
- 收藏
- 关注
原创 豆包解读论文:将具有分支和循环控制流的命令式程序转换为标准SQL1999的公共表表达式
本文提出Flummi编译策略,将含分支/循环的命令式程序转换为标准SQL CTE,无需专用解释器。该策略通过控制流图分两阶段编译:显式化数据流后生成SQL代码,利用递归CTE处理循环。在DuckDB等引擎测试17个程序(含300行光线追踪器)显示,其批量执行效率优于UDF/Python实现1.04-1489倍,尤其适合数据库驻留数据的命令式计算。Flummi完全基于标准SQL特性,兼容多引擎,但纯内存计算效率低于通用语言。
2025-12-20 08:25:44
433
原创 解决PostgreSQL中找不到uniq函数的错误
摘要:PostgreSQL中uniq()函数用于消除数组中相邻重复项,但并非内置函数。当出现"函数不存在"错误时,需先安装intarray扩展模块。该函数常与sort()配合使用以完全去重,示例显示其对数组{1,1,2}处理后返回{1,2},但会保留非相邻重复值。使用前需执行CREATE EXTENSION intarray命令启用功能。(149字)
2025-12-19 22:03:07
164
原创 利用DeepSeek计算abcde五人排成一队,要使c在ab 之间,有几种排法
摘要:题目要求5人排列中c必须位于a和b之间。通过两种方法求解:1) 固定a,b,c顺序为a-c-b或b-c-a,从5个位置选3个分配,剩余位置排列d,e,共20×2=40种;2) 全排列120种中,a,b,c顺序满足条件的概率为1/3,同样得到40种。验证结果一致,最终答案为40。
2025-12-19 20:58:33
284
原创 利用小米mimo为精确覆盖矩形问题C程序添加打乱函数求出更大的解
本文针对精确覆盖矩形问题的C程序效率优化进行了研究。原程序在处理较大矩形时性能不足,参考JavaScript实现经验,作者通过随机化搜索顺序来提升效率。关键改进包括:1) 引入Fisher-Yates洗牌算法随机化放置顺序;2) 修复了指针类型转换导致的内存错误(64位系统下指针与int大小不等的问题);3) 在DLX算法中随机化行选择顺序。主要代码修改涉及添加洗牌函数(shuffle_ints)、优化搜索函数调用方式,并确保内存安全。该优化方案通过打乱搜索路径避免陷入局部最优,从而提升大尺寸矩形覆盖问题的
2025-12-18 20:38:52
270
原创 利用小米mimo编写用DLX求解方块组成的不同形状(类似俄罗斯方块)精确覆盖矩形问题C程序
小米AI工具发布了DLX算法求解方块拼图问题的C程序。该程序可以处理类似俄罗斯方块的形状拼合问题,输入矩形尺寸和形状列表后,输出字母填充的矩阵解。程序包含以下核心功能: 数据结构:定义了形状基础信息(ShapeBase)、旋转信息(Rotation)和DLX节点结构(Node) 形状处理:支持形状旋转、规范化、去重等操作,可扩展添加更多形状 DLX算法实现:使用精确覆盖算法求解拼图问题 输入输出:处理形如"4,4,[A,4,B,6]"的输入参数,输出字母矩阵 程序通过深度优先搜索结合DL
2025-12-18 08:23:42
404
原创 DeepSeek做组合数学题:求只由数字1、2、3组成且同时包含数字1、2、3的5位数有多少个?
摘要:本文通过容斥原理计算由数字1、2、3组成的五位数中同时包含这三个数字的个数。首先计算不考虑限制时的总数3^5=243种;然后减去仅含两个数字的情况(3×2^5=96),再加上仅含一个数字的情况(3×1=3),得到不满足条件的共93种。最终结果为243-93=150种满足条件的五位数。验证表明该结果正确。
2025-12-17 18:51:54
613
原创 Javascript引擎node bun deno比较
本文对比了Node.js、Bun和Deno三大JavaScript引擎的性能表现。测试结果显示:在小数据量场景下,Node.js(4.61ms)最快,Bun(5.38ms)次之,Deno(20.92ms)最慢;但在中等数据量测试中,Deno(60.66ms)反超Node.js(105.62ms)和Bun(116.51ms)。三种引擎的安装包大小相近(30-40MB),但启动行为不同:Node直接进入交互环境,Bun显示帮助信息,Deno无输出。测试基于修改后的block_solver_core.js程序,移
2025-12-17 08:44:41
404
原创 PostgreSQL pg_clickhouse插件的安装和使用
本文介绍了使用pg_clickhouse扩展连接PostgreSQL和Clickhouse数据库的实践过程。作者首先通过南京大学镜像快速下载了docker镜像(ghcr.nju.edu.cn/clickhouse/pg_clickhouse:18-0.1.0),解决了官方源下载慢的问题。随后详细说明了容器运行和插件创建步骤,包括首次运行的docker run命令及后续启动方式。在配置过程中,虽然成功创建了SERVER、USER MAPPING和SCHEMA,但在导入外部模式时出现连接错误,作者分析可能是缺少
2025-12-16 08:02:19
395
原创 利用DeepSeek提取Javascript代码实现命令行求解方块完全覆盖问题
本文介绍了一个俄罗斯方块覆盖问题的命令行求解工具。该工具基于舞蹈链算法实现,核心功能是从图形界面求解器中提取计算代码,接收矩形尺寸和方块列表作为输入,输出填充方案或无解提示。代码定义了12种常见方块形状(A-X),提供形状翻转、位置计算等工具函数,并使用精确覆盖算法求解。求解器支持设置最大运行时间限制(默认10秒),适用于批量处理多种方块组合的覆盖问题。
2025-12-16 07:47:15
263
原创 DeepSeek辅助Python编写直角多边形拟合圆轮廓并画图
本文实现了一个多边形近似圆的生成算法,通过用户输入的半径和单位长度自动计算顶点坐标。算法将圆分为四个象限,分别计算每个象限的顶点位置,并通过插入直角顶点保证多边形连续性。生成的顶点坐标会进行单位长度整数倍调整。程序还提供了使用Turtle库绘制多边形和参考圆的可视化功能,包含自动缩放和居中处理,并支持顶点标记。该算法可用于测试多边形间的包含关系,为几何计算提供基础支持。
2025-12-15 08:13:14
287
原创 苏旭晖先生写的纯SQL求解Advent of Code 2025第9题 最大矩形面积 第2部分
本文介绍了一个优化DuckDB中多边形内最大矩形查找的SQL方案。该方案通过将Oracle的CONNECT BY LEVEL语法改为DuckDB的RANGE函数实现兼容,并采用轮廓线段分析技术来识别有效矩形。关键步骤包括:1) 处理输入数据并生成轮廓线段;2) 分析线段交点并标记有效区间;3) 生成所有可能矩形并验证其四条边是否都在多边形内。相比使用spatial插件的方案,此方法实现了10倍的性能提升,最终输出多边形内面积最大的矩形。
2025-12-15 07:44:28
320
原创 解决俄罗斯方块精确覆盖问题的Javascript程序
本文介绍了两款多边形拼图解谜工具。第一款是TangramPuzzleSolver,可通过修改index.html文件中的网格宽度和高度参数来适应不同矩形覆盖需求,并提供了下载地址和演示链接。第二款是polyomino-solver,支持自由添加形状,更适合解决Advent of Code等编程挑战中的拼图问题,同样提供了演示地址。两款工具都采用网页版形式,通过浏览器即可运行,适用于各种多边形拼图解谜场景。
2025-12-14 07:48:26
471
原创 利用DeepSeek辅助改造30行DLX求解数独python程序
这篇文章介绍了一个高效的数独求解器实现,基于Algorithm X算法。核心代码包含四个主要部分: solve_sudoku()函数使用精确覆盖算法解决数独问题,将数独转化为精确覆盖问题后求解 parse_sudoku_string()和format_sudoku_grid()函数处理数独的输入输出格式转换 solve_sudoku_file()函数从文件读取多个数独题目并批量求解 辅助函数exact_cover()、select()和deselect()实现算法X的核心逻辑 该实现可以处理标准9x9数独,
2025-12-14 07:43:46
791
原创 利用Duckdb求解Advent of Code 2025第12题 摆放礼物
摘要:Advent of Code第12天题目要求解决圣诞树礼物摆放问题。给定多个不规则形状的礼物和不同尺寸的树底区域,需判断各区域是否能容纳指定数量的礼物(可旋转翻转但不能重叠)。解题思路是将形状转换为二进制表示,生成所有可能的变体,通过递归检查每种组合是否能放入区域。示例中3个区域有2个能满足要求。算法核心是形状的二进制表示和位运算验证。
2025-12-13 08:22:41
837
原创 利用DeepSeek辅助Python求解Advent of Code 2025第11题 问题路径 第2部分
摘要:该Python程序解决了在有向图中计算从起点svr到终点out且必须经过dac和fft节点的路径数量问题。采用分段计算策略避免路径枚举,将问题分解为多个子路径的组合。程序首先解析输入构建有向图,然后生成所有必要节点的排列顺序,对每种顺序分段计算路径数并相乘累加。包含环检测和两种路径计数方法(针对DAG使用拓扑排序,有环图使用记忆化搜索)。虽然考虑了成环情况,但实际输入是无环的,最终正确计算出15位数结果。
2025-12-13 07:03:08
360
原创 利用DeepSeek辅助DuckDB spatial插件求解Advent of Code 2025第9题 最大矩形面积 第2部分
本文介绍了使用DuckDB spatial插件查找多边形内最大矩形面积的方法。通过SQL的空间函数ST_Contains判断矩形是否完全包含于多边形中,并计算面积排序。Python程序实现步骤包括:1)读取多边形顶点坐标并转换为WKT格式;2)生成所有可能的矩形对角顶点组合;3)创建矩形WKT并计算面积;4)使用ST_Contains进行空间关系判断;5)筛选完全包含的矩形并按面积排序输出。虽然实现了功能,但性能存在瓶颈,主要由于逐条执行SQL查询和executemany插入操作效率不高,处理时间约2分钟。
2025-12-12 18:30:01
1050
原创 利用DeepSeek辅助PuLP求解Advent of Code 2025第10题 电子工厂 第2部分
本文介绍了使用PuLP库解决电压按钮问题的整数规划方法。通过解析输入文件中的电压要求和按钮配置,构建整数规划模型以最小化按钮按压次数,同时满足各计数器的目标电压值约束。程序成功求解了195台机器,验证了解的正确性,总按压次数计算准确。相比之前numpy的线性规划方法,PuLP的整数规划更适合此类离散优化问题。结果表明,选择合适的工具对问题求解至关重要。
2025-12-12 08:02:16
383
原创 利用Duckdb求解Advent of Code 2025第11题 问题路径
找到所有从 `svr` 通向 `out` 的路径。其中有多少条路径同时访问了 `dac` 和 `fft`?
2025-12-11 14:35:10
354
原创 利用DeepSeek辅助Python求解Advent of Code 2025第10题 电子工厂
本文摘要: 该问题分为两部分,描述了一个工厂机器初始化问题。第一部分需要根据指示灯图表(用#和.表示)和按钮配置(用圆括号数字表示),计算将所有机器指示灯配置正确所需的最少按钮按压次数。通过将指示灯状态转换为二进制数,按钮配置转换为位掩码,使用DFS+记忆化搜索可高效求解。 第二部分转为配置电压计数器(用大括号数字表示),每个按钮按压会增加对应计数器的值。这转化为线性方程组问题,可采用线性规划或贪心算法求解。示例显示三个机器的最优解分别为10、12、11次按压,总和33次。 关键点:1) 二进制状态转换简化
2025-12-11 07:10:42
763
原创 利用Duckdb求解Advent of Code 2025第9题 最大矩形面积
摘要:本文探讨了Advent of Code 2025第9题的矩形面积求解问题。第一问通过Duckdb SQL计算给定坐标点构成的最大矩形面积(7×3=21)。第二问涉及直角非凸多边形中寻找最大内接矩形,初步给出Python实现思路,但完整解法尚待研究。SQL代码展示了如何用窗口函数和笛卡尔积计算点对间的矩形面积,为后续复杂多边形问题提供了基础参考。
2025-12-10 19:25:32
311
原创 DuckDB 1.4.3 发布
DuckDB 1.4.3版本发布,主要包含错误修复和性能优化,重点包括:修复了ART索引、GROUP BY查询等正确性问题;改进了WAL重放时的内存管理;新增Windows ARM64原生支持,包括Python whl分发和扩展安装功能。基准测试显示,在ARM64设备上原生运行比x86模拟器性能提升24%。该版本是1.4 LTS系列的第三个补丁更新。
2025-12-10 19:15:41
697
原创 利用DeepSeek辅助Python求解Advent of Code 2024第12题 篱笆墙
本文介绍了使用Python求解Advent of Code 2024第12题"篱笆墙"问题的过程。题目要求计算花园中不同植物区域的周长和面积乘积总和。作者通过与DeepSeek的交互,总结出提问要简洁明确的经验。第一问程序通过遍历网格标记边界计算周长,第二问优化为统计连续边数而非逐个边界计数。核心算法包括BFS区域识别、边界检测和乘积计算,最终输出各区域统计结果及总和。代码展示了从网格读取到结果计算的全流程,为类似区域划分问题提供了参考解决方案。
2025-12-09 10:23:26
507
原创 利用Python求解Advent of Code 2025第8题 空间接线盒
摘要:题目描述了一个关于连接三维空间中电气接线盒的问题。精灵需要将接线盒通过最短距离连接,形成电路网络。第一部分要求在完成1000次最短连接后,计算三个最大电路大小的乘积。第二部分要求继续连接直到所有接线盒形成一个电路,并返回最后连接的两个接线盒X坐标的乘积。解决方案使用Kruskal算法思想,通过排序所有边并依次处理,同时维护电路集合的合并状态。代码实现了距离计算、边排序、电路合并等功能,并处理了单点并入电路和两电路合并等情况。
2025-12-09 06:57:04
911
原创 三种用SQL解决Advent of Code 2022第8题 树顶木屋 的比较和分析
本文比较了三种处理矩阵数据的SQL方案:1)张泽鹏的递归CTE方案,处理带换行符文件,通过递归计算四个方向的可视距离;2)newkid的两个版本,使用条件聚合计算同行同列障碍物距离;3)作者方案,通过窗口函数计算各方向可见性。三种方案均用于解决矩阵中元素的最大景观分数计算问题,但采用了不同的技术路径:递归遍历、条件聚合和窗口函数分析。其中张泽鹏方案支持带换行符输入,其余方案处理无换行符数据。
2025-12-08 19:37:39
331
原创 利用Duckdb求解Advent of Code 2025第7题 分离器
文章摘要 本文介绍了Advent of Code第7天的谜题"实验室",涉及量子快子歧管的光束分离问题。第一部分要求计算快子束在遇到分离器时的分裂次数,通过位运算模拟光束传播,示例结果为21次。第二部分引入量子概念,计算单粒子所有可能路径产生的时间线数量,示例结果为40个。解题使用递归CTE和位运算(SQL转为Python实现),处理了大数据溢出问题。最终谜题答案为1658。
2025-12-08 07:08:05
1106
原创 利用Duckdb求解Advent of Code 2025第6题 数学作业纸
摘要:这道题要求处理垂直排列的数字和运算符组成的数学问题。第一部分按列顺序计算每列数字的和或积,再求总和;第二部分改为从右到左按列读取数字,重新计算结果总和。解题时需注意数据对齐和空列处理,使用SQL函数如string_split和substr进行解析。最终目标是计算所有问题答案的总和。
2025-12-07 08:26:08
510
原创 利用Duckdb求解Advent of Code 2024第5题 打印队列
文章摘要: 该题目要求处理打印队列中的页码排序问题。第一部分需要验证给定的页码更新列表是否符合特定顺序规则(X必须在Y之前),并计算正确顺序更新的中间页码之和。第二部分则需对不符合规则的更新进行重新排序,再计算其中间页码之和。解题关键在于利用给定的顺序规则构建页码间的依赖关系,并通过分析规则数量确定页码位置。示例展示了如何通过递归和列表操作处理小型数据集,但对于大规模数据需优化算法以避免指数级复杂度。最终解决方案通过统计规则数量直接定位中间页码,有效降低了计算复杂度。
2025-12-07 08:22:49
1356
原创 利用Duckdb求解Advent of Code 2024第8题 共振共线
摘要:本文介绍了如何计算天线共振产生的反节点位置。第一部分要求找出频率相同的两点对称中心的反节点,通过中点公式计算。第二部分扩展为找出所有与至少两个同频天线共线的格点位置。SQL代码实现了这两种情况的计算,分别使用中点公式和两点式直线方程,并通过去重统计反节点数量。第一部分示例结果14个,第二部分扩展到34个。代码通过硬编码行列数处理输入数据。
2025-12-06 08:12:22
671
原创 利用Duckdb求解Advent of Code 2025第5题 自助餐厅
摘要:本文解决精灵厨房库存管理问题,涉及两个任务:1) 统计可用食材ID中位于新鲜范围内的数量(示例结果为3);2) 计算所有新鲜食材ID范围合并后的总覆盖数(示例结果为14)。第一部分使用SQL查询判断ID是否在范围内,第二部分通过Python区间合并算法(转换为SQL递归CTE实现)高效计算不重叠范围的总和。核心算法是先排序区间,再合并重叠部分,最后统计各区间覆盖数。
2025-12-06 08:08:55
528
原创 利用Duckdb求解Advent of Code 2021第9题 烟雾盆地
本文介绍了Advent of Code 2021第9天的两个谜题。第一部分要求找出高度图中的低点(比所有相邻位置低的点),计算其风险等级(高度+1)的总和。示例中四个低点的风险等级总和为15,实际谜题答案为506。第二部分需要识别由9分隔的盆地区域,找出三个最大盆地的大小并相乘。示例结果为9×14×9=1134。解决方案使用SQL查询,第一部分通过比较相邻位置找出低点,第二部分则需识别被9包围的封闭区域。
2025-12-05 07:49:12
442
原创 利用Duckdb求解Advent of Code 2025第4题 叉车纸卷
本文介绍了如何优化叉车移除纸卷的问题。第一部分要求统计初始状态下可以被访问的纸卷数量(相邻纸卷少于4个),示例中可移除13个。第二部分通过迭代移除可访问纸卷,直到无法再移除为止,示例最终共移除43个。文章提供了SQL解决方案:第一部分使用CTE统计符合条件的纸卷;第二部分采用递归CTE或DuckDB专用语法,逐步标记并移除可访问纸卷,直到没有可移除纸卷为止。关键点在于检查每个纸卷的8个相邻位置中纸卷数量是否少于4个,并动态更新移除状态。
2025-12-05 07:43:31
827
原创 利用Duckdb求解Advent of Code 2020第9题 编码错误
XMAS加密漏洞分析:第一部分通过检查每个数字是否是其前25个数字中两个不同数字的和,找出第一个无效数字127。第二部分在数据中寻找连续数字序列(如15+20+25+47=127),然后计算该序列最小值和最大值的和62作为加密弱点。SQL解决方案使用递归CTE和窗口函数实现这两步验证。
2025-12-04 07:47:36
967
原创 利用Duckdb求解Advent of Code 2025第3题 电池组
摘要:该编程问题要求从多组电池中选择特定数量的电池组合,使其数字组合的伏特数最大。第一部分需每组选2个电池,第二部分改为每组选12个电池。解题采用贪心算法和单调栈技术,通过Python实现并集成到DuckDB中处理大数据。最终计算所有组最大伏特数的总和,样例结果为3121910778619。该方案高效解决了大规模数字组合的最优化问题。
2025-12-04 07:45:20
826
原创 利用Duckdb求解Advent of Code 2023第8题 穿越沙漠
本文介绍了如何利用SQL解决"闹鬼荒原"导航问题。第一部分通过递归查询从AAA节点出发,按左右指令循环导航,统计到达ZZZ节点的步数。第二部分改为从所有A结尾节点同时出发,寻找所有路径同时到达Z结尾节点的步数。由于直接计算复杂度高,作者发现数据特点后采用计算各路径独立到达Z节点的步数,再求最小公倍数的优化方法。文中提供了完整的SQL实现代码,包括递归查询、字符串处理和最小公倍数计算,展示了如何用SQL解决复杂的路径导航问题。
2025-12-03 08:04:52
888
原创 利用Duckdb求解Advent of Code 2025第2题 礼品店
这篇文章介绍了如何识别礼品店数据库中的无效产品ID。这些ID的特点是仅由某个数字序列重复两次构成(如55、6464等)。解决方案分为两部分: 第一部分处理简单情况(如11、22等),通过数学运算找出范围内能被特定数字整除且商位数正确的ID。 第二部分扩展规则,考虑更复杂的重复模式(如111、10101等),需要构造10位以内的所有可能除数(共19种),然后检查每个范围内的数字是否能被这些除数整除且满足位数要求。 最终通过SQL查询实现,使用递归CTE生成除数,并计算所有无效ID的总和。关键点包括处理数字位数
2025-12-03 08:02:17
501
原创 利用Duckdb求解Advent of Code 2022第4题 重叠营地
本文介绍了《营地清理》编程题的两个部分:第一部分要求统计区间完全包含的对数(如2-8包含3-7),第二部分统计存在任何重叠的对数(如5-7与7-9重叠区域7)。给出的SQL解决方案通过解析输入字符串为区间数组,分别使用条件判断实现:完全包含用边界值比较(a1≤b1且a2≥b2或反之),重叠则检查区间交集是否存在(max(a1,b1)≤min(a2,b2))。该解法简洁高效地解决了区间重叠检测问题。
2025-12-02 08:12:14
484
原创 利用Duckdb求解Advent of Code 2025第1题 刻度盘
摘要:本文解决了一个密码保险箱问题,涉及旋转刻度盘计算指向0的次数。第一部分通过两种SQL方法实现:递归CTE(慢)和分析函数(快),处理每步旋转后的位置。第二部分扩展需求,计算旋转过程中所有指向0的次数,利用数学公式floor((b-1)/100)-floor(a/100)统计区间内100的倍数。最终通过DuckDB实现,验证了两种情况的密码计算。
2025-12-02 07:43:40
706
原创 利用Duckdb求解Advent of Code 2022第6题 识别数据包起始标记
这篇文章介绍了《Advent of Code 2022》第6天的编程题目"调谐故障"。题目要求检测通信数据流中第一个由4个不同字符组成的标记位置,并报告处理到该位置时的字符数量。文中给出了多个示例及解题思路,通过去重后长度不变来判断标记位置。最后提供了SQL解决方案,第一部分检测4字符标记,第二部分只需将检测长度改为14字符即可。解题关键在于利用字符串去重后的长度变化来定位标记位置。
2025-12-01 09:06:52
406
原创 利用Duckdb求解Advent of Code 2022第8题 树顶木屋 第二部分
摘要:本文解决Advent of Code 2022第8天第二部分问题,寻找树屋最佳位置。核心思路是计算每棵树四个方向的可见距离(遇到等高或更高树即停止),并将四个方向距离相乘得到景观得分。初始SQL解法存在逻辑错误,误计算了所有更高树木而非仅第一棵阻挡树。修正后简化了查询逻辑,使用sign函数确保遇到阻挡树即停止计数。最终通过比较所有树的景观得分找出最大值,其中边缘树木因至少一个方向得分为零可被排除。
2025-12-01 08:57:40
945
原创 利用Duckdb求解Advent of Code 2022第2题 石头布剪刀
摘要:本文介绍了石头剪刀布游戏的计分规则,对手手势用A/B/C表示石头/布/剪刀,我方手势用X/Y/Z表示。每轮得分由手势分(石头1、布2、剪刀3)和结果分(输0、平3、赢6)组成。SQL解法通过解析输入字符串,计算每轮得分并求和。第二部分修改为X/Y/Z表示需输/平/赢,通过转换手势后沿用相同计分逻辑。示例输入A Y\nB X\nC Z的总分为15分(8+1+6)。解决方案使用CTE和字符串处理函数实现。
2025-11-30 18:52:43
504
从Windows转向Linux基础教程
2007-04-21
Microsoft Visual C++ Toolkit 2003 精简版
2009-10-21
《动手学深度学习》(Dive into Deep Learning)中文版
2019-05-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅