Questions tagged «tree-traversal»

与图论中的树木概念有关的挑战。

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

27
为*写翻译
任务很简单。为*语言编写口译员。 这是Wiki的更大链接。 只有三个有效的*程序: * 打印“ Hello World” * 打印0到2,147,483,647之间的随机数 *+* 永远运行。 根据此问题的规范,第三种情况必须是无限循环 输入: 可以通过我们的标准I / O规则通过任何可接受的输入方法进行输入 它将永远是以上程序之一 输出: 第一种情况应打印准确Hello World,带有或不带有尾行。 对于第二种情况,如果您的语言的整数最大值小于2,147,483,647,请使用您的语言的整数最大值 根据我们的标准I / O规则,第一种情况和第二种情况可以打印到任何可接受的输出。 第三种情况不应给出任何输出。 得分: 因为这是代码高尔夫球,所以最短的答案(以字节为单位)获胜。
20 code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

4
计算实际数字
定义 正整数n是一个实际数字(OEIS序列A005153),前提是所有较小的正整数都可以表示为的不同除数之和n。 例如,18是一个实际数字:其除数为1、2、3、6、9和18,小于18的其他正整数可以形成如下: 4 = 1 + 3 5 = 2 + 3 7 = 1 + 6 8 = 2 + 6 10 = 1 + 9 11 = 2 + 9 12 = 3 + 9 = 1 + 2 + 9 = 1 + 2 + 3 …
18 code-golf  sequence  number-theory  code-golf  code-challenge  sorting  c  code-golf  restricted-source  code-golf  natural-language  code-golf  tree-traversal  file-system  popularity-contest  pi  polyglot  code-golf  game  sliding-puzzle  code-golf  game  minesweeper  code-challenge  ascii-art  code-challenge  popularity-contest  graphical-output  code-challenge  popularity-contest  hello-world  underhanded  obfuscation  code-golf  code-golf  function  code-golf  code-golf  code-golf  popularity-contest  rosetta-stone  code-golf  primes  code-golf  restricted-source  popularity-contest  number  sequence  code-golf  restricted-source  popularity-contest  graphical-output  code-golf  popularity-contest  code-golf  primes  code-golf  game  code-golf  math  popularity-contest  popularity-contest  code-generation  popularity-contest  code-bowling  code-golf  popularity-contest  underhanded  code-golf  metagolf 

7
评估极小极大树
爱丽丝和鲍勃在玩小游戏。首先,他们从根节点(用粗点表示)绘制一棵树,没有内部节点,叶上有数字。任何节点可以具有任意数量的子代。 我们从根开始,首先是爱丽丝(A)。她必须选择当前节点的子节点之一。然后轮到鲍勃了,他同样选择了一个子节点。这一直持续到到达叶节点为止。 当到达叶子节点时,游戏结束。艾丽丝(Alice)的目标是在值尽可能大的节点处结束,鲍勃(Bob)的目标是在值尽可能小的节点处结束。 给定一棵嵌套数组形式的树,返回如果爱丽丝和鲍勃都玩的很好的叶子的值。 例子: 18: [[67, [[100, [[67, 47], [86], 21, 16], [[46, [14], 35, 85], [71, [18, 63, 69], 99, 22], 3]]], [[18, 32, 42, 80]], [[36, 70], [86, 53, 46, 59], [[41], 86, 35]]], 3] 60: [[[84, 35], [44, 60]], [[24, 98], [16, 21]]] 58: [[53, 77], …

10
编写最短程序以检查二叉树是否平衡
对于平衡二叉树中的每个节点,左子子树和右子子树的高度最大差值为1。 二叉树的高度是指从根节点到最远离根节点的子节点的距离。 下面是一个示例: 2 <-- root: Height 1 / \ 7 5 <-- Height 2 / \ \ 2 6 9 <-- Height 3 / \ / 5 11 4 <-- Height 4 二叉树的高度:4 以下是二进制树和有关它们是否平衡的报告: 上面的树是不平衡的。 上面的树是平衡的。 编写尽可能短的程序,该程序接受二叉树的根作为输入,如果树不平衡,则返回假值,如果树平衡,则返回真值。 输入值 二叉树的根。这可能是以对根对象的引用或什至是二叉树的有效表示形式的列表的形式。 输出量 返回真实值:如果树是平衡的 返回falsey值:如果树为un平衡。 二叉树的定义 树是一个对象,其中包含一个值以及另外两个树或指向它们的指针。 二叉树的结构如下所示: typedef struct T { …

11
解释松散范围
解释松散范围 ListSharp是一种解释型编程语言,具有许多功能,其中一个功能是基于1索引的范围创建器,其工作方式如下: 您可以将范围定义为(INT) TO (INT)或仅定义(INT)两个int可以从min到max int32值的范围 然后,您可以使用这些范围来提取数组的元素,而不必担心会超出其边界 因此: 1 TO 5 产生: {1,2,3,4,5} 3 产生: {3} 范围可以使用AND运算符相加 1 TO 5 AND 3 TO 6 产生: {1,2,3,4,5,3,4,5,6} 记住这也适用于负数 3 TO -3 产生: {3,2,1,0,-1,-2,-3} 挑战如下: 输入值 字符数组和先前定义的range子句作为字符串 输出量 范围中基于1索引位置的元素(不存在/负索引会转换为空字符) 如何取胜 作为代码高尔夫球挑战,您应该创建具有最少字节数的程序以获胜 有人指出不存在空字符,因此您应该忽略它们(我仅在此处显示它们是为了使它们更易于理解,但却使人感到困惑) 测试用例: input array is: {'H','e','l','l','o',' ','W','o','r','l','d'} range clause: "1 TO …
13 code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

1
mtDNA突变树
背景: MtDNA是人类DNA的一部分,是从母亲传给孩子的,很少发生突变。由于这对所有人类都是如此,因此有可能创建一棵巨大的树,以可视化方式将所有人类如何通过其母系关系彼此联系,一直到假设的EVE。当孩子出生时,MtDNA中的每个突变都会从其父树中的分支创建一个新的子分支。 在此处了解有关线粒体DNA(mtDNA)的更多信息:https://en.wikipedia.org/wiki/线粒体DNA 目的: 您的程序将获得mtDNA树枝突变计数列表,并且您的程序应提供它的树状视图 输入和输出示例: 输入是一个三列的分号分隔表,每个分支都有一行。例: L0a'b'f'k;L0;14 L0a'b'f;L0a'b'f'k;23 L0;mtEVE;10 L0a'b;L0a'b'f;30 L0a;L0a'b;38 L0a1'4;L0a;39 L0a1;L0a1'4;40 L0a1a;L0a1;42 L0a1a NL;L0a1a;43 L0a1a1;L0a1a NL;44 L0a1a2;L0a1a NL;45 L0a1a3;L0a1a NL;44 L0a1 NL;L0a1;41 L0a1b;L0a1 NL;44 L0a1b NL;L0a1b;45 L0a1b1;L0a1b NL;46 L0a1b1a;L0a1b1;47 L0a1b1a1;L0a1b1a;48 L0a1b2;L0a1b NL;48 L0a1b2a;L0a1b2;50 L0a1c;L0a1 NL;45 L0a1d;L0a1 NL;44 L0a4;L0a1'4;55 L0a2;L0a;47 L0a2a;L0a2;49 L0a2a1;L0a2a;50 L0a2a1a;L0a2a1;51 L0a2a1a1;L0a2a1a;53 L0a2a1a2;L0a2a1a;53 L0a2a2;L0a2a;53 L0a2a2a;L0a2a2;54 L0a2b;L0a2;57 …

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

2
抢劫
介绍 经过漫长的战斗,您在一场谜语竞赛中击败了狮身人面像。狮身人面像对您的技巧印象深刻,希望为您提供与您的机灵相称的奖励,并将一条神奇的羊皮纸条分成八个盒子,每个盒子中都包含一个数字,以实现它们的存在。 狮身人面像说:“减少羊皮纸,使盒子重叠,这些盒子将通过加法或乘法合并。当剩下一个盒子时,它的价值将是用金币作为奖励。” 任务 您必须编写一个程序或函数,该程序或函数将一个列表/数组/八个自然数作为输入,并返回/打印通过一系列“折痕”操作可获得的最大奖励。 机械学 “折痕”操作是在某些单元格上执行的,操作者为+或*作为操作者。使用运算符将​​列表的前n个单元格折叠起来并与其目标单元格合并。合并操作中未消耗的任何单元均保持不变。 这是使用n = 3个单元格进行折痕的示例: 使用任何一种加法,将导致以下结果: 或乘法,将导致以下结果: 注意:为简单起见,不允许使用少于1个单元格的折痕,也不允许具有大于或等于列表长度的单元格的折痕。但是,列表的单元格数量可以增加一半以上。 可以将8个单元格的列表加5,从而产生一个新的长度为5的列表: [0,1,2,3,4,5,6,7]使用+操作员会给5个单元格增加一个[9,9,9,1,0]。 计分 标准代码高尔夫规则-产生正确输出且获胜字节数最少的代码。 奖励:如果您的代码还返回/打印了导致最大奖励的折痕操作序列,请将分数乘以0.8。输出示例如下: crease 5 + crease 2 * crease 2 + crease 1 * 例子 使用以下输入和结果测试您的代码,格式为input - maximum reward: [0, 1, 2, 3, 4, 5, 6, 7] - 7560 [0, 9, 0, 3, 2, …

8
二叉树编码
假设您有一棵完整的二叉树(即每个内部节点恰好有两个非空后代)。每个节点包含一个非零整数。您将获得将树编码为整数列表或从整数列表中解码树的任务。 该树在内部存储如下: struct node { int data; struct node *left, *right; }; 您必须实现两个功能: int *encode(struct node *root); struct node *decode(int *array); 由您决定如何编码和解码。 要点: 最小编码长度 复杂度(理想情况下,节点数量呈线性关系) 独创性 源代码长度没有意义,您不限于C。 树示例: 5 / \ 3 2 / \ 2 1 / \ 9 9

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

7
它是线性树吗?(第一版)
背景 未标记的树可能如下所示: o / | \ o o o | / \ o o o 为了线性化这棵树,我们首先用每个o子节点的数量标记每个节点: 3 / | \ 1 0 2 | / \ 0 0 0 然后将数字以呼吸优先的方式写在列表中,即逐行从左到右: [3, 1, 0, 2, 0, 0, 0] 这是上面树的唯一且明确的表示,这意味着没有两个不同的纯树将具有相同的线性化,并且我们可以从列表中重建原始树。 尽管每棵树都对应于一个特定的整数列表,但并非每个整数列表都代表一个有效的线性化树:例如,[2, 0, 0, 0]它并不代表一个有效的树,如果我们尝试对其进行去线性化,则最终得到该树 [2,0,0,0] -> 2 [0,0,0] -> 2 [0,0] -> …

3
预购+后购到有序
任务 给定完整二叉树的前遍历和后遍历,返回其有序遍历。 遍历将表示为两个列表,两个列表均包含n个不同的正整数,每个列表唯一地标识一个节点。您的程序可能会采用这些列表,并使用任何合理的I / O格式输出结果顺序遍历。 您可以假设输入是有效的(也就是说,列表实际上表示对某些树的遍历)。 这是code-golf,因此以字节为单位的最短代码获胜。 定义 一个满二叉树是有限的结构节点,这里由唯一的正整数表示。 完整的二叉树是由单个节点组成的叶子: 1 或一个分支,由一个带有两个子树的节点组成(称为左子树和右子树),每个子树又是一个完整的二叉树: 1 / \ … … 这是完整的二叉树的完整示例: 6 / \ 3 4 / \ / \ 1 8 5 7 / \ 2 9 该前序遍历的满二叉树的递归定义如下: 包含节点n的叶子的预遍历是列表[ n ]。 包含节点n和子树(L,R)的分支的预排序遍历是列表[ n ] + 预排序(L)+ 预排序(R),其中+是列表串联运算符。 对于上面的树,就是[6,3,1,8,2,9,9,4,5,7]。 完整二叉树的后遍历定义如下: 包含节点n的叶子的后序遍历是列表[ n ]。 …
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.