Questions tagged «grammars»

对于与形式语法有关的挑战,通常使用上下文无关的语法。

30
从较小的“ H”创建一个“ H”
挑战 创建一个函数或程序,当给定整数时size,该函数或程序将执行以下操作: 如果size等于1,则输出 H H HHH H H 如果size大于1,则输出 X X XXX X X X程序/功能的输出在哪里size - 1 (只要您愿意,0只要您在答案中指定,就可以使基本情况与相对应) 可以使用以下任何一种输出格式,以您更方便的方式: 所需结构的字符串,其中任意两个不同的字符分别对应于H和space 具有所需结构的二维数组,其中任意两个不同的值分别对应于H和space 字符串的数组/列表,每个字符串中有一行输出,并且与H和对应的任意两个不同的值space 只要每行上有恒定数量的前导空格,就可以使用前导空格。两个不同的输出字符可以取决于您选择的任何内容,只要它们不同即可。 指定代码返回的输出格式。 测试用例 1 H H HHH H H 2 H H H H HHH HHH H H H H H HH HH H HHHHHHHHH H HH HH …
73 code-golf  ascii-art  fractal  code-golf  code-golf  string  code-golf  string  matrix  code-golf  graph-theory  maze  binary-matrix  code-golf  kolmogorov-complexity  random  code-challenge  metagolf  test-battery  brain-flak  text-processing  code-golf  matrix  code-golf  number-theory  primes  code-golf  string  matrix  code-golf  binary  bitwise  code-golf  number  factorial  floating-point  code-golf  number  sequence  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-golf  string  code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

6
救命!我的计算器出现故障!
介绍 我的计算器很奇怪。有时,当我输入时8会显示2。有时,当我输入a 6时会显示+。一些按钮混在一起! 谁能帮我确定哪个? 挑战: 输入:错误方程式列表,结果正确。 输出:交换的两个按钮。 例如: 输入可以是: 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 其预期的输出是:2和*。 为什么?因为如果我们交换2和*,则所有等式都是正确的: 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 挑战规则: 输入可以采用任何合理的格式。可以是一个以空格分隔的字符串;字符串列表或-array; 一个包含方程式的列表和另一个包含正确结果的列表。你的来电。请说明您使用的输入格式! …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

10
抽象重写挑战(警察)
这有点像打高尔夫球般的警察和强盗挑战。这是警察的线索;强盗的话题就在这里。 警察 您的任务是定义一个抽象重写系统,在该系统中很难确定一个单词与另一个单词的可及性。您将准备以下内容: 一组符号,称为字母。(您可以为此使用任何Unicode字符,但是请不要使用空格或难以区分的符号。) 一个源字符串组成的从字母符号。 一个目标字符串组成的从字母符号。 一组使用字母字符的重写规则。(有关重写规则的定义,请参见下文。) 证明您可以通过连续应用重写规则将源字符串转换为目标字符串的方法。该证明可能包括一个实际的重写步骤序列,或者一个数学证明证明该序列必须存在,或者一个数学证明证明该序列不存在。 您将发布其中的前四个,并保持证据保密;强盗将通过提供自己的证据来证明您的目标字符串是否可以从源字符串到达​​,从而试图破解您的答案。如果您在两周内未对提交的内容进行破解,则可以将其标记为安全并在证明中进行编辑。 提交内容将根据其重写规则中的字符数以及其源字符串和目标字符串进行评分,如下所述。获胜者将是得分最低的完整作品。 什么是重写规则? 重写规则只是字母表中的一对字符串。(这些字符串中的任何一个都可能为空。)重写规则的应用包括找到与该对中的第一个字符串相等的子字符串,然后用第二个字符串替换它。 有一个例子应该说明这一点: 假设字母表A,B和C; 源字符串为“ A”;目标字符串为“ C”,重写规则为 A:B B:BB B:A AA:C 那么可以通过以下方式访问目标字符串: A B (using rule 1) BB (using rule 2) AB (using rule 3) AA (using rule 3) C (using rule 4) 计分 您的分数将是 您的源字符串的长度, 加上目标字符串的长度, 加上重写规则中包含的所有字符串的长度, 每个重写规则加一个加分。 如果您使用如上所述的冒号分隔符编写重写规则,则这只是所有重写规则(包括分隔符)的总长度,加上源字符串和目标字符串的长度。分数越低越好。字母表中不同字符的数量将用于打破平局,越少越好。 …

14
这是一个截断的三角形数字吗?
相关OEIS序列:A008867 截断三角数 三角数的一个共同属性是它们可以排列成三角形。例如,取21并排列成os 的三角形: Ø OO oo oo oo oo 让我们定义一个“截断:”从每个角切割相同大小的三角形。截断21的一种方法如下: 。 。。 oo oo 。oo。 。。哦。。 (的三角形.是从原始三角形切出的)。 o剩下12 秒,因此12是一个截断的三角形数字。 任务 您的工作是编写一个程序或函数(或等效函数),该程序或函数采用整数并返回(或使用任何标准输出方法)数字是否为截断的三角形数字。 规则 没有标准漏洞。 输入是非负整数。 切口的边长不能超过原始三角形的一半(即,切口不能重叠) 切口的边长可以为零。 测试用例 真相: 0 1 3 6 7 10 12 15 18 19 虚假: 2 4 5 8 9 11 13 14 16 17 …
20 code-golf  math  decision-problem  number-theory  integer  code-golf  number  decision-problem  functional-programming  code-golf  array-manipulation  matrix  code-golf  string  classification  string  code-challenge  binary  compression  decode  code-golf  string  string  code-challenge  balanced-string  encode  code-golf  number-theory  integer  base-conversion  code-golf  math  number-theory  geometry  abstract-algebra  code-golf  array-manipulation  sorting  optimization  code-golf  math  geometry  image-processing  generation  code-golf  string  cops-and-robbers  repeated-transformation  grammars  cops-and-robbers  repeated-transformation  grammars  code-challenge  restricted-source  tips  source-layout  javascript  code-challenge  kolmogorov-complexity  restricted-source  code-golf  combinatorics  counting  math  fastest-code  linear-algebra  code-golf  math  permutations  matrix  linear-algebra  code-golf  string  decision-problem  restricted-source  code-golf  number  array-manipulation  subsequence  code-golf  number  array-manipulation  matrix  code-golf  brainfuck  code-golf  color  code-golf  quine  source-layout  code-golf  subsequence  code-golf  string  ascii-art  code-golf  string  ascii-art  alphabet  code-golf  decision-problem  interpreter  hexagonal-grid  halting-problem  code-golf  string  polynomials  calculus  code-golf  math  decision-problem  matrix  complex-numbers  code-golf  random  code-golf  number  arithmetic 

10
升序矩阵
“升序矩阵”是整数(包括0)的无限矩阵,其中任何元素是最小的可用元素,之前尚未在相应的行和列上使用: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

1
找到以下几组
以下挑战要求您熟悉正式的解析器理论。如果您不知道问题的含义是因为您不知道该问题的含义,那么很多大学课程都涵盖了上下文无关的语法和第一套/跟随套。 我可以推荐此斯坦福课程,特别是讲义08和09(第7页)。我还从这些讲义中提取了备忘单 - 我建议尝试此挑战的任何人都阅读它。 编写一个程序或函数,该程序或函数在无上下文语法的情况下可以找到每个非终结符的后续集合。非正式地,非终结符的跟随集是一组终结符和$(表示输入结束),您可以在该终结符之后的有效句子中找到它们。 输入以单个可打印ASCII字符串或可打印ASCII行的数组形式给出。您可以以任何合理的格式输出集合,使用$(作为文字输出或集合中的字符串等)指示输入的结束。您可以根据以下格式假定输入始终有效。 上下文无关的语法以非常简化的方式给出。每条生产线包含一个生产。每个产品都是用空格分隔的符号列表。终端是一串用撇号(例如'**')括起来的字符。为了简单起见,您可以假定终端不包含空格,但是如果您的程序允许的话,那会很好。非终结符可以是任何不包含空格或的字符串$。空生成(通常用ε表示)只是一条仅包含左侧非终结符的行。第一行是定义开始符号的生产。 例如,以下语法: S→aSa | bSb | ε 将给出为: S 'a' S 'a' S 'b' S 'b' S 输入/输出示例: In: S 'a' S 'a' S 'b' S 'b' S Out: S {'a', 'b', $} In: S A B C A 'a' A C 'b' A …

3
Brainfuck中的按位运算符
您的任务是为以下每个二进制运算符创建一个Brainfuck程序。每个程序应从输入中获取一个或两个8位数字(A和B)并计算指定的运算: A XOR B A AND B A OR B A Shifted Left by 1 (circular shift) NOT A 您不必全部实施5。得分的计算方式为: #totalCharacters + {4000 * #problemsNotCompleted} 因此,有效分数是从零(最佳)到20,000(未完成)。 我不在乎您将结果存储在哪里,也不管您是否保留输入。假设8位单元以及仅在右侧需要的空单元数。 您可能会认为数字已经在最适合您的任何内存位置中,因此您无需担心IO操作。
13 code-golf  binary  brainfuck  code-golf  code-golf  ascii-art  random  code-golf  code-golf  code-challenge  sorting  code-golf  code-challenge  java  code-golf  statistics  code-golf  code-challenge  fastest-code  code-golf  math  code-golf  math  kolmogorov-complexity  code-golf  code-golf  array-manipulation  combinatorics  code-golf  kolmogorov-complexity  popularity-contest  underhanded  code-golf  math  floating-point  code-golf  interpreter  code-golf  music  code-golf  code-golf  cryptography  code-challenge  scrabble  code-golf  code-challenge  popularity-contest  quine  code-golf  quine  cryptography  code-golf  kolmogorov-complexity  code-golf  printable-ascii  code-golf  chess  code-golf  math  number-theory  code-challenge  c  code-golf  random  popularity-contest  hello-world  code-shuffleboard  code-golf  compression  grammars  code-golf  tips  code-golf  sequence  code-golf  string  code-challenge  sorting  permutations  code-golf  string  code-challenge  optimization  code-golf  interpreter  code-challenge  string  code-golf  math  number  fibonacci  string  compression  c#  code-golf  chemistry  popularity-contest  math  c  c++  java  code-golf  math  function  code-golf  complex-numbers  code-golf  geometry 

5
电脑永远不会品尝到令人耳目一新的Cookie
受github.com/JackToaster/Reassuring-Parable-Generator的启发,又受xkcd.com/1263的启发。可能的话是从派生reassuring.cfg该资源库的。 建议查看reassuring.cfg (使用第12次提交)以查看输出匹配的语法(输出是与语法匹配的所有字符串的列表)。 任务:您的程序必须输出pastebin pastebin.com/2SNAJ1VH中包含的所有7968个区分大小写的精确文本行。pastebin的副本保存在Wayback Machine中 这是来自pastebin的33条激励线的示例: Computers can't enjoy a salad. Computers can't enjoy a cake. Computers can't enjoy a ice cream cone. Computers can't enjoy a meal. Computers can't enjoy a drink. Computers can't enjoy a steak. Computers can't enjoy a chicken dinner. Computers can't enjoy a piece …

5
抽象重写挑战(强盗)
这有点 证明高尔夫球-喜欢 警察和强盗挑战。这是强盗的线索。警察的线在这里。 强盗 警察将发布摘要重写系统。您的任务是通过应用重写规则来证明从源字符串可以到达或不能到达目标字符串,从而破解他们的提交。(您可以通过发布一系列以源字符串开头并以目标字符串结尾的重写规则,或者通过数学方式证明该规则存在或不存在来执行此操作。) 有关详细信息和定义,请参见警察的线程。

2
使用上下文无关文法压缩数据
可以使用直线语法压缩某些类型的数据,例如人工文本或源代码。您基本上可以创建一个语法,该语法的语言中只有一个词-未压缩的数据。在此任务中,您必须编写一个实现此数据压缩方法的程序。 输入项 输入的字符串长度不超过65535字节。确保输入匹配正则表达式[!-~]+(即,至少一个可打印的ASCII字符,不包括空格)。 输入示例 abcabcbcbcabcacacabcabab 输出量 输出是形成规则的一组规则,这些规则描述了一个单词(输入)。每个非终结符均用大于9的十进制数表示。起始符号为符号编号十。下面给出了与示例输入相对应的示例输出;其语法在下面进一步描述: 10=11 11 12 12 11 13 13 11 14 14 11=a 12 12=b c 13=a c 14=a b 每个规则的形式<nonterminal>=<symbol> <symbol> ...在右侧带有任意空格分隔的符号数。每个遵循以下限制并精确导出输入字符串的输出均有效。 限制条件 为了阻止人们做奇怪的事情,我们采取了许多限制措施: 每个非终结符必须在规则的右侧至少出现两次。例如,以下输入语法abcabc不合法,因为规则12仅出现一次: 10=12 11=a b c 12=11 11 两个相邻符号的序列在所有规则的所有右侧都不能出现多次,除非它们重叠。例如,abcabcbc由于顺序bc出现两次,因此以下输入语法无效: 10=11 11 b c 11=a b c 有效的语法为: 10=11 11 12 11=a …
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.