如何生成所有 Tetromino 的列表?

2023-12-23

如何生成所有 Tetromino 的列表? 或者,更一般地说,如何生成仅限于多个单元格的多联骨牌子集?


有很多方法可以做到这一点。我发现效果很好的一种选择是递归地、更普遍地思考它。尤其:

  1. 单个矩形是 1-多米诺骨牌。
  2. 对于任何 n 型骨牌,您可以通过将一个块与 n 型骨牌中的任何块相邻放置一个块来创建 (n+1) 型骨牌。

这为您提供了一种列出所有可能的多米诺骨牌的递归方法。不过,您需要小心,因为这会生成相同 n 多米诺骨牌的多次旋转和平移。您可以通过选择一些参考坐标系然后平移 n-omino 使其始终与该系统的轴齐平来解决此问题。一旦你完成了这项工作,你就可以通过围绕轴旋转生成的 n-omino 来生成所有旋转,然后将其平移回规范位置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何生成所有 Tetromino 的列表? 的相关文章

  • 反转二进制网络

    如何反转二元方程 以便找到哪些输入将产生给定的输出 Example Inputs i0 through i8 Outputs o0 through o8 Operators XOR AND 二元方程 1 i0 1 i1 0 i2 1 i3
  • 如何在 Perl 中以函数式风格进行编码?

    你如何 have a sub返回一个sub or 将文本作为代码执行 in Perl 另外 如何拥有匿名函数存储状态 子返回子作为coderef example 1 return a sub that is defined inline s
  • 基于时间的算法评分

    我们希望创建一种评分算法 在更短的时间内获得更高的分数 在更长的时间内获得更少的分数 需要注意的是 没有实际范围 因此时间范围可以从 100 毫秒到长达 10 分钟或更长时间 点范围为 0 到 50 谢谢你的帮助 你可以简单地把它变成一个线
  • 用 Java 创建迷宫求解算法

    我被分配了用 Java 创建迷宫求解器的任务 这是任务 Write an application that finds a path through a maze The maze should be read from a file A
  • 使到 n 个点的集合的欧氏距离之和最小的点

    我有一组点W x1 y1 x2 y2 xn yn 在 2D 平面上 你能找到一种算法 将这些点作为输入并返回一个点 x y 在 2D 平面上 距以下点的距离之和最小W 换句话说 如果 di Euclidean distance x y xi
  • 如何在给定目标索引数组的情况下对数组进行就地排序?

    你如何对给定的数组进行排序arr in place给定目标索引数组ind 例如 var arr A B C D E F var ind 4 0 5 2 1 3 rearrange arr ind console log arr gt B E
  • Codility 钉板

    尝试了解 Codility NailingPlanks 的解决方案 问题链接 https app codility com programmers lessons 14 binary search algorithm nailing pla
  • 确定解决迷宫问题的最小线段数

    我有一个问题 我需要定义一个具有最少数量的顶点的多边形 该多边形与不透明的图像中的每个像素相交或包含每个像素 令 N 为图像中的像素数 我唯一的假设是图像的边界 孔 内不能包含透明像素 并且至少有两个像素是不透明的 举个例子 假设我有以下图
  • 如何从一组重叠的圆计算多边形集?

    这个问题是一些计算细节的扩展这个问题 https stackoverflow com questions 1667310 combined area of overlapping circles 假设有一组 可能重叠的 圆 并且希望计算这组
  • 删除队列中的最后一个元素

    我需要删除队列的最后一个元素 我唯一可以使用的操作是 Peek 获取第一个元素而不删除它 Enqueue element 向队列末尾插入一个元素 Dequeue 删除第一个元素 IsEmpty true 或 false 队列是否为空 而且我
  • 在依赖类型的函数式编程语言中,扁平化列表是否更容易?

    在 haskell 中寻找一个可以展平任意深度嵌套列表的函数时 即应用的函数concat递归并在最后一次迭代时停止 使用非嵌套列表 我注意到这需要有一个更灵活的类型系统 因为随着列表深度的变化 输入类型也会变化 确实 有几个 stackov
  • 如何将一组重叠范围划分为不重叠范围?

    假设您有一组范围 0 100 一 0 75 b 95 150 c 120 130 d 显然 这些范围在某些点上重叠 您将如何剖析这些范围以生成不重叠范围的列表 同时保留与其原始范围相关的信息 在本例中为范围后面的字母 例如 运行算法后的上述
  • 找到一系列间隔的最有效分组

    我有一个应用程序 其中有一系列不重叠的固定宽度间隔 每个间隔都有一个给定的键 每个间隔具有相同的宽度 并且可以存在连续的间隔 本质上 我想以最小化单独间隔的数量的方式对间隔和键进行分组 这可以通过合并具有相同键的连续间隔或查找匹配间隔并将它
  • 由周期表元素形成的最大单词的算法

    我想为以下问题场景编写一个算法 根据元素周期表元素的名称 找到可以组成的最大单词 符号如Na Ne等应被视为单个元素 这是在一家知名公司的求职面试中被问到的 有人可以帮我解决这个问题吗 我认为更好的方法是检查字典中的每个单词 看看是否可以从
  • 从三点求圆心的算法是什么?

    我在圆的圆周上有三个点 pt A A x A y pt B B x B y pt C C x C y 如何计算圆心 在Processing Java 中实现它 我找到了答案并实施了一个可行的解决方案 pt circleCenter pt A
  • Haskell 中列表列表的笛卡尔积

    给定一个长度列表的列表x所有子列表的长度都相同y 输出y x长度列表x包含每个子列表中的一项 例子 x 3 y 2 1 2 3 4 5 6 Output 2 3 8不同的输出 1 3 5 1 4 5 1 3 6 1 4 6 2 3 5 2
  • 异或交换可以扩展到两个以上的变量吗?

    我一直在尝试将异或交换扩展到两个以上的变量 例如n变量 但我没有得到比这更好的地方3 n 1 对于两个整型变量x1 and x2你可以像这样交换它们 swap x1 x2 x1 x1 x2 x2 x1 x2 x1 x1 x2 所以 假设你有
  • 使用并集查找(又名不相交集)检测图是否是二分图

    我正在 Spoj 上做一个问题 基本上可以简化为检测图是否是二分图 我正在尝试使用 dfs 为图表着色 但它太慢了 有人评论这个 没有 bfs 没有 dfs 没有二部图 简单的并查集就可以做到 确实速度很快 提示 1 偶数长度的环不会影响两
  • 直接选择排序与交换选择排序

    有什么区别直接选择排序 vs 交换选择排序 今天我陷入了一场争论 我的教授在他的讲义中使用了这两个术语 维基百科和任何教科书或网站都会为您提供的选择排序就是他所说的 交换选择排序 我以前从未听说过 交换选择排序 这个术语 仅 选择排序 并且
  • 绘制多边形

    我正在使用 Google Maps API V3 根据路径绘制多边形 该路径是随机未排序坐标点 LatLng 的数组 这会产生以下形状 Polylines intersect Problem 由于多边形的形状取决于路径中点的顺序 因此如何对

随机推荐

  • C# 构造函数线程安全吗?

    假设我有多个线程 每个线程都试图创建同一类的对象 不同线程同时创建同类型的对象会不会互相干扰 我需要在构造函数中使用 锁 吗 这在很大程度上取决于构造函数的实现 如果构造函数仅访问该类的成员 而不访问任何外部静态类或方法 那么是的 它是线程
  • Android BLE BluetoothGatt.writeDescriptor() 有时返回 false

    我正在尝试编写 BLE Android 应用程序 我发现有时当我打电话时BluetoothGatt writeDescriptor https developer android com reference android bluetoot
  • 链接到断开连接的 ADODB.Recordset 的访问表单:保存更改

    我正在尝试设置一个表单以使用断开连接的 ADODB Recordset 作为其源 我遇到的问题是变化是not关闭表单并对提示回答 是 后 将其保存到原始 Access 表中 我缺少什么 注意 请不要告诉我该方法没有用 它只是一个具有本地表的
  • 通用 DbDataReader 到 List 映射

    我的属性绑定数据访问类遇到了一个小问题 更像是烦恼 问题是 当读取器中不存在类中相应属性的列时 映射会失败 Code 这是映射器类 Map our datareader object to a strongly typed list pri
  • 为什么 ORM 被认为是好的,而“select *”被认为是不好的?

    ORM 通常不涉及执行诸如 select 之类的操作吗 如果我有一个表 MyThing 其中包含 A B C D 等列 那么通常会有一个对象 MyThing 其属性为 A B C D 如果该对象没有被如下所示的 select 语句完全实例化
  • 如何在 if 语句中渲染某些内容 React Native

    Problem 我在 React Native 中使用平面列表 并且想要与平面列表中的变量进行比较 如果两个变量相等则渲染一个文本组件 但如果不相等则不渲染任何内容 我尝试了很多方法来做到这一点 但没有任何效果 我希望得到一些帮助来找出一种
  • 在 JsFiddle 中打印 Var

    我如何从 JavaScript 中将某些内容打印到 JsFiddle 的结果屏幕上 我不能使用document write 它也不允许print 我应该用什么 为了能够看到输出console log 在 JSFiddle 中 转到外部资源在
  • sqlite & flex - 如果不存在则插入?

    我正在使用 flex 开发我的第一个桌面应用程序 并且我也是第一次使用 sqlite 我正在创建数据库和所有表 我还想将几行数据添加到几个表中 以便用户在首次安装时可以使用一些数据 我遇到的唯一问题是每次运行程序时它都会一遍又一遍地插入相同
  • 在构造函数中更改扩展的 RichTextBox 文本不起作用

    我有以下课程 public partial class RichTextBoxEx RichTextBox public RichTextBoxEx InitializeComponent Text Some Text 但是 当我将其放在表
  • 使用 R 将数据集中的多列重新排列为一列

    我想将我的一个数据集中的三列合并为一个变量名称为 al anim 的列 并删除所有重复项 将值 动物 ID 从最低到最高排序 然后将每个动物从 1 重新编号到 N变量名称 new id anim1 lt c 1456 2569 5489 1
  • 文件上传需要在 CodeIgniter 中进行验证

    我有 2 个文本字段和 1 个文件上传 这些都是必需的 当我只需要文本字段时 一切正常 但是当我需要上传文件时 验证错误仍然显示需要一个文件 即使我选择了一个文件 我究竟做错了什么 view fieldset fieldset
  • like '%Query%' 与全文搜索 CONTAINS 查询的性能

    我有一个情况 我想搜索单个词 对于这种情况 从性能的角度来看哪个查询会更好 Select Col1 Col2 from Table Where Col1 Like Search or Select Col1 Col2 from Table
  • 如何在 Stacey 应用程序中从逗号分隔的列表值创建链接标签?

    我希望在 Stacey 中为每个项目设置标签 类别 例如 设计 摄影 插图 等 并将每个标签 类别链接到各自的类别 例如 我的project yml 文件内容如下 title Example Person s Logo date Febru
  • 使用内置 Ruby JSON 库反序列化 JSON 原语

    为什么 Ruby 的内置 JSON 不能反序列化简单的 JSON 原语 我该如何解决这个问题 irb main 001 0 gt require json gt true irb main 002 0 gt objects 42 true
  • Rails 路由(root :to => ...)

    我知道如何将 Rails 应用程序的路由根设置为控制器和操作 但是如何添加id呢 pages show 1应该是根 我该如何设置这个 遇到了同样的问题 这对我有用 root to gt pages show id gt 1
  • 在谷歌colab中加载图像

    我的 Jupyter Notebook 有以下代码可将图像上传到 Colab from google colab import files uploaded files upload 系统提示我输入该文件 哪个被上传 我使用以下命令验证文件
  • 如何在 Next.js 中为非默认语言环境生成动态路径?

    我正在使用 next i18next 构建一个具有国际化功能的 Next js 应用程序 为我网站的所有页面生成英语和法语页面 但具有动态路由的页面除外 即 blog id blog title 对于具有动态路由的页面 会生成英语页面 但不
  • 将 url 扩展添加到 Laravel 路由

    是否可以像这样向 laravel 路由添加扩展 http www mywebsite com members login html 和另一个具有不同扩展名的页面 http www mywebsite com contactus htm 我正
  • 如何将自定义工具链添加到 eclipse CDT

    我有一个基于 gnu arm 的自定义工具链 我已经下载了带 CDT 的 eclipse IDE 我想知道如何使用 eclipse 添加我的工具链 它有一个通用工具链 即Linux GCC 除此之外就没有什么了 我想添加我的 我没有找到任何
  • 如何生成所有 Tetromino 的列表?

    如何生成所有 Tetromino 的列表 或者 更一般地说 如何生成仅限于多个单元格的多联骨牌子集 有很多方法可以做到这一点 我发现效果很好的一种选择是递归地 更普遍地思考它 尤其 单个矩形是 1 多米诺骨牌 对于任何 n 型骨牌 您可以通