数据科学聚焦:2025 年代码来临中的精选问题

为现实世界的数据科学用例提供动力的问题和解决方案的实践演练《数据科学聚焦:来自 2025 年代码到来的精选问题》首先出现在《走向数据科学》上。

来源:走向数据科学

of Code 是每年一度的编程谜题降临日历,其主题是帮助圣诞老人的精灵为圣诞节做准备。异想天开的设置掩盖了一个事实,即许多谜题都需要认真的算法来解决问题,尤其是在日历即将结束时。在上一篇文章中,我们讨论了算法思维对于数据科学家的重要性,即使人工智能辅助编码已成为常态。随着 2025 年代码来临 (Advent of Code 2025) 上个月结束,本文仔细研究了该活动中与数据科学家特别相关的一系列问题。我们将用 Python 勾勒出一些有趣的解决方案,重点介绍可在各种现实世界数据科学用例中使用的算法和库。

使用集合和动态规划导航快子流形

我们要考虑的第一个问题是第 7 天:实验室。我们在名为 input_d7.txt 的文件中给出了一个快子流形,如下所示:

.......S.......

............

......^......

............

......^.^........................^.^.^........................^......^.....................^.^...^.^.................^...^.....^...............^...^.^.....^.........................快子光束(“|”)从流形的顶部开始向下传播。如果光束击中分离器(“^”),它会分裂成两束光束,一个位于分离器的两侧。难题的第一部分要求我们在给定一组初始条件(梁的起点和流形布局)的情况下确定梁分裂的次数。请注意,简单地计算分离器的数量并乘以 2 不会给出正确的答案,因为重叠光束仅计算一次,并且某些光束永远不会到达某些分离器。我们可以利用集合代数来解释这些约束,如下面的实现所示:使用最近邻搜索构建电路162,817,81059,618,56901,360,560...包裹