Questions tagged «tiling»

对于涉及将空间(通常是平面)划分为没有间隙的小块(通常使用有限的一组原形砖)的挑战。另请参见[set-partitions]。

1
最简单的地板砖
您应该编写一个程序或函数,该程序或函数接收一个描述地板的字符串作为输入并输出或返回最简单的元平铺区域,该区域可以创建给定的地板图案。 地板是正方形网格的一部分。每个方形图块都用天蓝色或黑色上色(由a和b在输入中表示)。 一个示例楼层: aaaa ababab aaaaa 元平铺 由一个N由M天蓝色和黑色正方形组成的矩形meta-tile 构建 直到平移为止,使用的元瓦片都是相同的(您不能旋转或镜像它们) 如果两个meta-tile的边连接,则它们应沿其整个长度连接(即meta-tiles以网格状方式平铺空间) 元区块示例: ba aa 以及它创建的元平铺: . . . babababa aaaaaaaa ... babababa ... aaaaaaaa babababa aaaaaaaa . . . 此元平铺会创建显示的上方楼层,如左侧字母所示: . . . ******** ***aaaa* ... *ababab* ... *aaaaa** ******** ******** . . . 如果meta-tile的区域较小,则meta-tiling比另一个更简单。2*2 = 4对于示例楼层,我们的示例的面积最小。因此输出应4为示例。 输入值 由字符组成a b …
10 code-golf  grid  tiling 

4
多米诺瓷砖的数量
编写一个给定正n和m的程序或函数,以计算可以放入n × m矩形中的有效不同多米诺骨牌拼贴的数量。这是序列A099390在整数序列的在线百科全书。您可以采用任何合理的格式将输入作为函数参数,CLA或stdin接受。您必须返回或打印单个整数作为输出。 每个平铺块都不得留有任何间隙,并且会计算每个不同的平铺块,包括旋转,反射等。例如,2x3的平铺块为: |-- ||| --| |-- ||| --| 输入/输出示例: 1, 9 -> 0 2, 2 -> 2 2, 3 -> 3 4, 4 -> 36 4, 6 -> 281 6, 6 -> 6728 7, 10 -> 53175517 从理论上讲,您的程序应可用于任何n和m,但是如果您的程序需要太多内存或数据类型溢出,则可以使用。您的程序必须能正确地工作任何n,但是m <= 8。 以字节为单位的最短代码获胜。

3
生成有效的斐波那契平铺
背景 斐波那契平铺是(1D)线的平铺,使用两段:短段S和长段L(它们的长宽比是黄金比例,但这与这项挑战无关)。要将使用这两个原生动物的拼贴实际上是斐波那契拼贴,必须满足以下条件: 拼贴中不得包含子序列SS。 平铺中不得包含子序列LLL。 如果通过执行以下所有替换操作组成新的平铺,则结果仍必须是斐波那契平铺: LL → S S → L L → (空字符串) 让我们看一些例子: SLLSLLSLLSLS 这看起来像是一个有效的平铺,因为它不包含两个* S *或三个* L * s,但让我们执行合成: LSLSLSLL 看起来仍然不错,但是如果我们再次进行组合,我们会得到 LLLS 这不是有效的斐波那契平铺。因此,前两个序列也不是有效的平铺。 另一方面,如果我们从 LSLLSLSLLSLSLL 并反复将其组合成较短的序列 LSLLSLLS LSLSL LL S 所有结果都是有效的斐波那契平铺,因为我们从未在这些字符串内的任何位置获得SS或LLL。 为了进一步阅读,有一篇论文将这种平铺作为与Penrose平铺的简单一维类比。 挑战 编写一个程序或函数,给定一个非负整数N,该程序或函数以包含N个字符(be S或L)的字符串形式返回所有有效的斐波那契平铺。 您可以通过函数参数STDIN或ARGV接受输入,然后返回或打印结果。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 例子 N Output 0 (an empty string) 1 S, L …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.