Questions tagged «atomic-code-golf»

原子代码高尔夫是根据您定义的语言的特定片段中的操作次数来评分的。

6
用尽可能少的不同字符编码程序,
目的是编写一个程序,该程序以尽可能少的字符对另一个程序(输入)进行编码。 计分 分数等于输出所需的不同字符数。 分数越低越好。 规则 没有目标语言且命令集有限。(没有Brainf ** k,Whitespace等) 编辑:我的意思是至少有26个有效字符,A不会改变Brainf ** k程序的运行方式,因此您无法计算此字符。同样适用于空白。 在编写此问题时,目标语言必须存在。 您必须包含一个小说明,说明如何存档分数。 输入程序有效。 编码的程序必须是与输入语言相同的有效程序。 编码的程序必须执行与原始程序相同的工作。 您的编码器必须适用于该语言的每个有效程序。 包括一些样本输入和输出。 笔记 编码器可以用任何语言编写,而不仅限于它所针对的语言。 这不是代码高尔夫,而是鼓励使用可读程序。 伟大的目标是看用这种语言写东西需要多少个不同的字符。我不允许BF等,因为不会有挑战。 这是受“以尽可能少的不同字符打印一个字符串”的启发,您可以将其作为该问题的元高尔夫。 例 在Java中,您可以\uXXXX改用其他字符。有效条目以这种方式对输入中的每个字符进行编码。得分为18。(\ 0-9a-f) Tcl中的代码对Java程序进行编码: set res {} foreach char [split [read stdin] {}] { append res [format \\u%04x [scan $char %c]] } puts $res

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

14
打印NxN升序螺旋形[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 数字应在长度=(N ^ 2的位数)的字段中以前导零开头。 输入(N): 4 输出: 01 12 11 10 02 13 16 09 03 14 15 08 04 05 06 07 我对算法和实现的清洁度感兴趣。因此,空格不计算在内,N的上限为42。

2
Collat​​z风格的打蛋
受到伟大的API复活节彩蛋狩猎的启发! 摘要 您的任务是使用尽可能少的步骤在“ Collat​​z空间”(稍后说明)中搜索预定整数。 介绍 这项挑战基于著名的Collat​​z猜想,希望这里至少每个人都听说过。这是“ 打印超级Collat​​z编号”的摘要。 将在Collat​​z序列(也称为3X + 1的问题)是你用任意正整数开始,在这个例子中,我们将使用10和应用这一套步骤吧: if n is even: Divide it by 2 if n is odd: Multiply it by 3 and add 1 repeat until n = 1 的在Collat​​z距离C(m,n)的两个数字之间m和n,对于这一挑战的目的,是在两个数字之间的距离在Collat​​z图表(贷记@tsh告诉我关于这个概念),其被定义为如下:(使用21和13作为例子): 写下了在Collat​​z序列m(在这种情况下,21): 21, 64, 32, 16, 8, 4, 2, 1 写下了在Collat​​z序列n(在这种情况下,13): 13, 40, 20, 10, 5, …

2
X大于3,且X和Y之间至少相差2
我试图打败一些C ++。是否可以使这种情况更短? X > 3 & X - Y > 1 (当然,除了删除空白。) 所以,X至少4,但X >= Y + 2。 X和Y是[0,5]间隔中的整数。 我试图找到一些按位公式,但失败了。
11 code-golf  number  tips  c++  code-golf  popularity-contest  obfuscation  code-golf  c  code-golf  board-game  hexagonal-grid  code-golf  game  grid  code-golf  number  permutations  popularity-contest  math  graphical-output  number-theory  king-of-the-hill  code-challenge  compression  code-challenge  fastest-code  code-golf  math  ascii-art  animation  code-golf  popularity-contest  generation  counting  fastest-code  fastest-code  popularity-contest  image-processing  king-of-the-hill  code-golf  conversion  binary-tree  code-golf  math  number  rational-numbers  division  code-golf  restricted-source  hashing  atomic-code-golf  logic-gates  code-golf  function  code-challenge  puzzle-solver  ai-player  test-battery  popularity-contest  music  compression  code-golf  number  stack  atomic-code-golf  logic-gates  ascii-art  popularity-contest  code-golf  date  grid  code-challenge  game  code-golf  parsing  code-golf  math  geometry  sequence  popularity-contest  code-trolling  code-golf  string  restricted-source  code-golf  quine  king-of-the-hill  code-golf  math  code-golf  simulation  code-golf  ascii-art  code-challenge  sorting  optimization 

2
使用NAND逻辑门构建位计数比较器
阿位计数比较器(BCC)是一个逻辑电路,它利用计数输入一些号码A1, A2, A3, ..., An以及输入B1, B2, B4, B8, ...表示一个数字。然后,它返回1如果总数A是上投入大于数以二进制由所表示的B输入(例如B1,B2和B8将使数11),以及0以其他方式。 例如,对于一个位计数比较器,其需要5输入,其中A2,A4,A5,和B2被设置为1,将返回1因为有3个A输入,为上,这是大于2(数表示仅通过B2正对)。 您的任务是创建一个位计数比较器,该计数器总共使用16个A输入和4个B输入(表示从1到的位8),仅使用两个输入NAND门,并使用尽可能少的NAND门。为简化起见,您可以在图表中使用AND,OR,NOT和XOR门,并具有以下相应的分数: NOT: 1 AND: 2 OR: 3 XOR: 4 这些分数中的每一个都对应于构造相应门所需要的NAND门数量。 使用最少的“与非”门产生正确结构的逻辑电路胜出。

3
盲二进制加法器
假设您有两个盒子B(x)和B(y),每个盒子都包含一个未知的位-0或1,以及一台F可以对其进行X射线检查并产生第三个盒子B(x^y)(xor)的机器。F也可以计算B(x*y)(和)。实际上,这些只是机器可以执行的单个操作的特殊情况- 每个内部产品,F()如下所示。 对于两个相同长度的数组 [B(x[0]), B(x[1]), ..., B(x[n-1])] [B(y[0]), B(y[1]), ..., B(y[n-1])] 内积定义为 B(x[0]*y[0] ^ x[1]*y[1] ^ ... ^ x[n-1]*y[n-1]) “ 每个 ”是指F()可以处理多对x[],y[]一气呵成。一对中的x[]和y[]必须具有相同的长度;来自不同对的x[]-s和y[]-s不一定需要。 框由唯一的整数ID表示。 每个 JavaScript 内部产品的实现可能看起来像 var H=[0,1]; // hidden values, indexed by boxId function B(x) { // seal x in a new box and return the box id return …

3
“原子”代码高尔夫球-确定同位素中的中子数
您的任务是将包含元素同位素的字符串作为输入,如下面的示例所示,其编码为原子序号,后跟一个空格和该元素的IUPAC化学符号: 162 Dy 并返回该同位素原子中的中子数。 在以上示例中,162具有96个中子(162个总核子,由于是66而减去66个质子),因此输出应为96。 您可能会假定给定的元素将是IUPAC当前给定的114个永久性元素之一(包括fl药和肝mor),而不是通用名称,例如Uus“ un”。您还可以假定同位素的原子数不超过1000,或小于元素中的质子数。 您可能无法使用内置函数来检索有关质子或中子元素数量的数据,也不能使用代码中的任何函数将字符串或数字标记本身视为代码。 该程序使用最少的令牌以任何语言执行此操作均会获胜。但是,出于此挑战的目的,字符串中的每个字符或转换为字符串的变量名称都视为标记。 元素列表及其原子序号供参考: 显示代码段 { "H": 1, "He": 2, "Li": 3, "Be": 4, "B": 5, "C": 6, "N": 7, "O": 8, "F": 9, "Ne": 10, "Na": 11, "Mg": 12, "Al": 13, "Si": 14, "P": 15, "S": 16, "Cl": 17, "Ar": 18, "K": 19, …

2
使用NAND逻辑门构建EBCDIC转换器
在这个问题中,在EBCDIC和ISO-8859-1的超集之间定义了映射。 您的任务是建立一个两输入与非门网络,该网络将采用A1, A2, A4, ..., A128代表EBCDIC字符的八个输入,并B1, B2, B4, ..., B128根据该映射返回代表对应的“ ISO-8859-1”字符的八个输出。 为简化起见,您可以在图表中使用AND,OR,NOT和XOR门,并具有以下相应的分数: NOT: 1 AND: 2 OR: 3 XOR: 4 这些分数中的每一个都对应于构建相应门所需要的NAND门数量。 使用最少的“与非”门来正确实现上述所有要求的逻辑电路将胜出。
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.