Questions tagged «rubiks-cube»

对于与Rubik魔方或Pocket Cube等变体有关的挑战。

6
我的魔方上有一只蚂蚁
一个标准的,已解决的3×3×3 魔方具有6个颜色不同的面,其中每个面都是3×3的一种颜色的正方形网格。白色的面与黄色相对,红色的面与橙色相对,蓝色的面与绿色相对,并且当白色指向上方时,红色在蓝色的左侧: 想象一下,一只蚂蚁坐在白脸的中央,面对红脸。您可以给他3个命令: 前进(^)-朝他面对下一个网格正方形的方向迈出一步,如有必要,跨过立方体的边缘。 右(>)-向右(顺时针)旋转90°,并保持在同一网格正方形中。 左(<)-向左(逆时针)旋转90°,并保持在同一网格正方形中。 给定任意命令列表,找到蚂蚁访问的正方形的颜色(不包括白色的起始正方形)。 例如,命令序列^^>^^<^^^的路径如下所示: 按顺序访问的网格正方形的颜色为white red red green green green yellow或,不计算起始正方形wrrgggy。 编写一个程序或函数,该程序或函数接受一串命令字符,<^>然后打印或返回wyrobg与该蚂蚁在多维数据集上的路径相对应的字符串(白色,黄色,红色橙色,蓝色,绿色)。 以字节为单位的最短代码获胜。抢七是较早的答案。 笔记 立方体在空中,蚂蚁有有效的毛虫,因此他可以遍历整个立方体。 多维数据集始终保持其已解决状态。 正方形的颜色仅在移动到正方形而不是旋转时才记录。起始白方块不应记录。 在输入和/或输出中可能存在单个可选的尾随换行符。 测试用例 input : output [empty string] : [empty string] ^ : w < : [empty string] > : [empty string] ><><<<>> : [empty string] >^ : w <<^> …

9
与Rubik's一起骑车
我儿子闲着扭动魔方时,发现魔方一直回到已解决状态。我很确定他一开始就认为这是某种巫术魔术,但我解释说,如果继续重复相同的动作顺序,它将始终返回其原始状态。最终。 当然,作为一个孩子,他不得不自己尝试一下,并选择了一个他认为很棘手的“随机”序列。在大约十次重复之后,他迷失了方向,问我要重复几次。我不知道他使用的顺序,我告诉他我不知道,但是我们可以编写一个程序来找出答案。 这就是您要进入的地方。当然,我可以打些东西,但他想自己打。但是,他不是一个很快的打字员,所以我需要尽可能短的程序。 目的 给定一系列旋转,输出必须执行的次数最少,才能使多维数据集返回其原始状态。这是代码高尔夫,因此最少字节获胜。您可以编写程序或函数,所有其他通常的默认设置都适用。 输入项 输入是一系列动作,采取字符串,列表或其他适合您的语言的格式。如果采用字符串形式,请在移动之间随意使用分隔符(或不使用分隔符)。 必须考虑六个“基本”动作及其相反的动作: R - Turn the right face clockwise L - Turn the left face clockwise U - Turn the up (top) face clockwise D - Turn the down (bottom) face clockwise F - Turn the front face clockwise B - Turn the back …

8
模拟魔方
魔方具有6种颜色:红色,橙色,黄色,白色,蓝色和绿色。红色和橙色,黄色和白色以及蓝色和绿色的面相对。 一个已解决的Rubik多维数据集的网络如下所示: Y BRGO W 磁贴看起来像这样: Y Y Y Y Y Y Y Y Y B B B R R R G G G O O O B B B R R R G G G O O O B B B R R R G G G O O …

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

21
NxNxN Rubik多维数据集上的置换数量
介绍: 3x3x3魔方具有可能的排列,大约为43 亿个。您可能之前已经听说过这个数字,但是实际上是如何计算的呢?43 ,252 ,003 ,274 ,489 ,856 ,00043,252,003,274,489,856,00043,252,003,274,489,856,000 3x3x3魔方有六个面,每个面有九个贴纸。看(外部)件而不是贴纸,我们有六个中心件。八个角块;和十二个边缘碎片。由于中心不能移动,因此我们可以在计算中忽略它们。至于拐角和边缘: 有()排列八个角的方法。每个角都有三个可能的方向,尽管(八个中的)只有七个可以独立地定向。在给定()可能性的情况下,第八个/最后一个角的方向取决于前面的七个。8 !8!8!40 ,32040,32040,32037373^72 ,1872,1872,187 有()种方式来排列十二条边。从减半这是因为恰好在拐角处时,边缘必须始终保持均匀的排列。在给定()的可能性的情况下,第十二个/最终边缘的翻转取决于前面的十一个,因此可以独立翻转十一个边缘。12 !212!2\frac{12!}{2}239 ,500 ,800239,500,800239,500,80012 !12!12!2112,0482112112^{11}2 ,0482,0482,048 综上所述,我们有以下公式: 8 !× 37× 12 !2× 211= 43 ,252 ,003 ,274 ,489 ,856 ,0008!×37×12!2×211=43,252,003,274,489,856,0008!×3^7×\frac{12!}{2}×2^{11} = 43,252,003,274,489,856,000 资料来源:维基百科-Rubik的立方体排列 尽管这看起来可能已经很复杂了,但对于3x3x3多维数据集来说仍然相当简单。对于偶数立方体,公式略有不同。例如,这是4x4x4多维数据集的公式: 8 !× 37× 24 !2247= 7 ,401 ,196 ,841 ,564 ,901 ,869 …

4
魔方上的身份序列
移动序列是在魔方上的一系列移动(转弯)(在下面的符号中向下查找)。除了空移动序列之外,还有许多其他移动序列,这些移动序列对多维数据集完全没有影响。我们称这些移动序列为同一性序列。 这些身份序列中的某些很明显可以确定,例如U2 R R' U2或U D2 U' D2。在第一个步骤中,进行了两次随机移动U2 R,然后立即撤消R' U2。第二个类似。前两个随机动作U D2,然后撤消,但顺序相反U' D2。这仅起作用,因为U移动D2仅影响上层的片段,而移动仅影响下层的片段。您可以看到这两个移动序列的可视化。 其他身份序列可能一点都不明显。例如序列R' U' R' F' U F U' R' F R F' U' R U2 R。它很长,但是对多维数据集完全没有任何作用。 移动符号 移动描述了立方体六个面之一的一层的旋转。一个移动由一个代表面部的字母和一个可选的后缀(代表转角)组成。 字母及其对应的面是U(上-面向上的侧面),D(下-面向下的侧面),R(右-面向右侧的侧面),L(左-面向左侧的侧面) ,F(正面-面向您的一面)和B(背面- 背对您的一面)。 如果没有后缀,则将脸部顺时针旋转90度,后缀'表示将脸部逆时针旋转90度,而后缀2是指脸部顺时针旋转180度。 如果您在表示法上有任何问题,只需使用http://alg.cubing.net,您就可以在其中可视化此类移动序列。 挑战 您的任务是编写一个程序,该程序确定移动序列是否为身份。 您可以编写完整的程序或函数。它应接收一个包含移动序列(移动由空格分隔)的字符串作为输入(通过STDIN,命令行参数,提示或函数参数),并输出(通过返回值或STDOUT)布尔值或相应的整数( True-1-身份序列/ False-0-非身份序列)。 如果后缀'在编程语言中造成问题,则可以使用其他符号,但不能使用数字。R F2 U3不允许。 这是codegolf,因此最短的代码(以字节为单位)获胜。 测试用例 "" -> True "U2 R R' …

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

2
是魔方吗?
敬拜的传教士经过的时间过长,是要指出“ Rubik's Cubes”(在T恤,海报等上)的图片实际上无法解决。 首先要检查的是多维数据集由正确的部分组成。要解决一个立方体需要六种颜色,每个颜色有九个正方形。多维数据集还需要每个边缘和角单元(这些是组成多维数据集的较小的多维数据集)是唯一的。它们不仅必须是唯一的,而且如果两个中心部分彼此相对,则任何边或角部分都不能包含这两种颜色。 一旦拥有由所有正确零件组成的多维数据集,您仍然需要验证它是否可以解决。这里有一些规则,所以我请专家来解释它们,下面的破坏者解释了我们如何做到这一点。如果您有兴趣自行解决问题,则无需访问该站点即可了解或参与此挑战。 链接说明 您的任务是采用一种模式作为输入,并确定它是否实际上是可解决的魔方。为了解决问题,必须有一种方法可以在多维数据集上执行有效的移动,以使多维数据集的每个面上只有一种颜色(不同的面上有不同的颜色)。大多数Rubik立方体具有标准颜色(白色与黄色相反,等等),您可能不会假定求解状态遵循该特定颜色。 有效的移动是立方体的单个面的顺时针或逆时针旋转。随着立方体表面的旋转,与该表面相邻的任何正方形也将旋转,并保持连接到它们先前接触的表面。 IO 您可以以任何合理的方式使用该多维数据集。如果您的语言具有一些内置的对您有利的“立方体面”类型,也可以作为输入,否则,您可以采用2D网格的网络,立方体的数组,每个面1 3 x 3列表。只是合理。如果您想知道某种特定格式是否可以接受,请在聊天中对我进行评论或ping我,然后我将添加挑战以说明其有效性。 您的输入格式最多只需要支持9种颜色。 对于输出,这是一个决策问题,因此您应该为“是,这是一个有效的魔方”输出一个常数,而为“否,这不是有效的魔方”则输出一个常数。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 这是测试用例。它们的格式为一个立方体的网络,每个正方形为一个字母。不同的字母代表不同的颜色。可以根据要求添加更多的测试用例。 可解决的 RRR RRR RRR GGGWWWBBBOOO GGGWWWBBBOOO GGGWWWBBBOOO YYY YYY YYY GRR GRR ORW WWRBWYBOOGGY GGRBWGYBBOOO OOGRWGYWWRBB WYO YYB YYB 无法解决 RRR RRR RRR GGGWWWBBBOOO GGGWWWBBBOOO GGGWYWBBBOOO YWY YYY YYY RRR RRR RRR …

8
魔方争夺战
您的任务是创建随机移动序列,该序列可用于加扰魔方。这样的争夺是由25个动作组成的。每个动作都由字母组成,UDRLFB可选地后跟一个后缀'2。 该表示法称为Singmaster表示法。UDRLFB表示6个面之一,可选的后缀'2表示转角。此信息对于解决任务绝对不是必需的。 为了确保争夺是“高质量”,必须遵循以下两个规则: 两个连续的动作不能使用相同的字母。这禁止连续移动UU,DD,RR,LL,FF和BB和使用可选的后缀像所有的组合U2U或U'U'。 禁止使用这些移动对,因为它们很容易减少为1或0个移动。U2U具有相同的效果U',R'R相同的效果。 三个连续的动作不能属于同一字母组。该信集团是UD,RL和FB。这条规则还禁止连续移动UDU,DUD,RLR,LRL,FBF,BFB和使用可选的后缀像所有的组合U2DU,RL'R或B2FB'。 这些组按其移动轴对面进行排序。U并且D位于同一组中,因为它们都围绕相同的轴旋转。因此,U移动不会影响D面部,D也不会影响U面部。因此,两个动作可以互换,UDU并且具有与相同的效果UUD,并且可以减小为U2D。 挑战 编写脚本或函数,以生成一个随机加扰。没有输入。脚本/功能必须打印25个动作,而不能分开或用一个空格隔开,或者返回相应的字符串。 您的程序必须能够创建满足上述规则的每个加扰。当然,假设随机数生成器是真实随机的,而不是伪随机的。 这是代码高尔夫球。最短的代码(以字节为单位)获胜。 示例输出: 调用脚本/函数3次应打印/返回如下内容: R'B2R2F2R2FB'R2DR2ULFB2RB'U2B'FL'BR'U'RB' U'DBR'B2U'B'U'RUF'B'RDR2U'B'LR'B'F2D2UF2L' BR2F'B'R'D'R'U2B'F2D2R'F2D'F'D2R2B'L2R'UB'R2L'D 如果将每个动作分开一个空格: R2 L' F2 U2 D' R2 L2 F L' D2 U R B D' U2 L B2 L U B2 D U2 R' D2 U' B R D2 F U2 B' R2 F2 …

15
逆转魔方算法
每当您在魔方魔方上移动时,都会有一个反向移动,它会撤消第一个移动。因此,每个算法(一组动作)都有一个反向算法,该算法会取消第一个算法。 这项挑战的目标是找到给定算法的反面。 规格: 输入包含单个动作的数组。每一步都是一个长度为1或2的字符串。当然,您可以使用最适合您的语言的任何输入格式。每个动作都由结构X或X'或组成X2,其中X是大写或小写字母。 要反转X,只需将其替换为X'。同样,X'变为X。X2另一方面不会改变。 若要创建输出,请反转每个动作,然后反转数组。 示例(用空格分隔的字符串): R => R' D U' => U D' S T A C K => K' C' A' T' S' A2 B2 => B2 A2 得分: 这是代码高尔夫球,因此赢得的字节数最少。不允许出现标准漏洞。

7
3x3x3立方体的表面作为图形
您的任务是生成具有54个顶点的图形,每个顶点对应于Rubik立方体上的一个构面。如果相应的小平面共享一个边,则两个顶点之间会有一条边。 规则 您可以选择输出邻接表,邻接矩阵,边列表或任何合理的格式来表示算法中的图形。(在大多数情况下,人类可读的视觉图通常在算法中不是合理的格式。) 您可以使每个顶点彼此相邻,也可以不使它们彼此相邻。 您可以为每个边沿包括两个方向(对于自循环计数为一或两次),也可以为每个边沿精确地输出一次,但不能混合使用。 您可以根据需要对顶点重新编号,跳过一些数字,甚至对顶点使用非数字标签。如果编号不明显,您还应该发布编号,以便其他人可以更轻松地检查您的答案。 这是代码高尔夫球。以字节为单位的最短代码获胜。 输出示例 这是示例中使用的顶点编号: 0 1 2 3 4 5 6 7 8 9 10 11 18 19 20 27 28 29 36 37 38 12 13 14 21 22 23 30 31 32 39 40 41 15 16 17 24 25 26 33 34 …

30
消失的元素
给定一个字符串S和一个索引列表X,S通过删除每个索引处的元素来进行修改,并将S结果作为的新值S。 例如,给定S = 'codegolf'和X = [1, 4, 4, 0, 2], 0 1 2 3 4 5 6 7 | c o d e g o l f | Remove 1 c d e g o l f | Remove 4 c d e g l f | Remove 4 c …
17 code-golf  string  array-manipulation  code-golf  string  ascii-art  code-golf  number  sequence  pi  code-golf  number  array-manipulation  code-golf  string  ascii-art  code-golf  math  number  game  code-golf  math  sequence  polynomials  recursion  code-golf  math  number  sequence  number-theory  code-golf  permutations  balanced-string  code-golf  string  ascii-art  integer  code-golf  decision-problem  hexagonal-grid  code-golf  ascii-art  kolmogorov-complexity  code-golf  number  code-golf  matrix  binary-matrix  code-golf  math  statistics  code-golf  string  polyglot  code-golf  random  lost  code-golf  date  path-finding  code-golf  string  code-golf  math  number  arithmetic  number-theory  code-golf  tetris  binary-matrix  code-golf  array-manipulation  sorting  code-golf  number  code-golf  array-manipulation  rubiks-cube  cubically  code-golf  grid  optimization  code-golf  math  function  code-golf  string  quine  code-golf  ascii-art  grid  code-golf  decision-problem  grid  simulation  code-golf  math  sequence  code-golf  path-finding  code-golf  ascii-art  grid  simulation  code-golf  number  whitespace  code-golf  sequence  code-golf  sequence  code-golf  sequence  integer  code-golf  math  game  code-golf  internet  stack-exchange-api  code-golf  sequence  code-golf  internet  stack-exchange-api  code-golf  math  factoring  code-challenge  sequence  polyglot  rosetta-stone  code-golf  string  browser  code-golf  date  code-golf  base-conversion  code-challenge  cops-and-robbers  hello-world  code-golf  cops-and-robbers  hello-world 

25
一个简单的模式
输入: 您选择的输入格式中的两位数字(我们称它们为m和n)和两个字符(我们称其为a和b)。 输出: 对于演练,请假装m=2, n=5, a='a', b='b'。 您的输出将是根据四个输入构建的字符串。让我们result用value 调用字符串""。首先,连击a到result m时间,所以串连a到result 2倍。result现在等于aa。其次,连击b到result m时间,所以串连b到result 2倍。result现在等于aabb。最后,如果结果已经比更长n,请截断result它,使其具有length n。否则,继续交替使用m的长度运行a,并b直到result有长度n。最终result是aabba,它有长度5。 测试用例: Input: m = 2, n = 4, a = A, b = B Output: AABB Input: m = 3, n = 8, a = A, b = B Output: AAABBBAA Input: m = 4, n …
17 code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

5
确定长方体的类型
介绍: 我是一个曲折的难题收藏家。在这里,您可以看到我目前收藏的±300个拼图。 我想每个人都知道常规的魔方(3x3x3多维数据集),它是一个NxNxN多维数据集。还有长方体(块状拼图),它们以不同的形式出现,也许SuperAntionioVivaldi可以在这里更好地解释一下: 常规Domino 长方体(例如2x2x3;2x3x3;3x3x4等)-它们以NxNx(N + O)或Nx(N + O)x(N + O)的形式出现,具有两个奇数维,并且一个偶数或偶数或奇数两个。 变形者长方体(例如2x2x4 ; 3x3x5; 3x3x9 ; 4x4x6 ;等) -它们有形式NxNx(N + P) ,其顾名思义,shapeshifts(在所有方向上)。这三个维度都是奇数或偶数。 软盘长方体(例如1x3x3;2x4x4等)-它们以Nx(N + P)x(N + P)的形式出现,与Shapeshifter几乎相同,但是具有所谓的Floppy Parity。 砖块长方体(例如2x3x4;3x4x5; 2x3x5等)-以Nx(N + O)x(N + P)的形式出现,就像常规的Domino长方体具有两个奇数维和一个偶数,或两个偶数和一个奇数;但没有相同的尺寸。 终极Shapeshifter(例如2x4x6、3x5x7、2x4x10等)-它们以Nx(N + O)x(N + R)的形式出现,并且可以在任何方向上变形。这三个维度都是奇数或偶数。但没有相同的尺寸。 挑战: 输入: 具有以下限制的正整数n:8 <= n <= 125. n可以唯一地解码为三个值(维度)的乘积,每个值在2到5之间(含2和5)。 我将其限制为2-5的原因是为了防止重复输入(例如1x2x4 = 8和2x2x2 …

2
魔方排序矩阵(又称圆环拼图)
这种代码挑战的想法很简单:给定整数矩阵,让我们通过应用Rubik风格的移动对其进行排序。这意味着您可以选择单个行或列,并向任意方向旋转其元素: [1, 3, 2, 4] => [3, 2, 4, 1] (rotate left for rows/up for columns) [1, 3, 2, 4] => [4, 1, 3, 2] (rotate right for rows/down for columns) 因此,给定任意维度的整数矩阵,仅应用这些Rubik样式的转换对其元素进行排序。矩阵 ⎡⎣⎢一种11一种21一种31一种12一种22一种32一种13一种23一种33一种14一种24一种34⎤⎦⎥[一种11一种12一种13一种14一种21一种22一种23一种24一种31一种32一种33一种34] \begin{bmatrix} a_{11} & a_{12} & a_{13} & a_{14} \\ a_{21} & a_{22} & a_{23} & a_{24} \\ …

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.