Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

9
整数随着时间的推移来回移动
输入: 一个整数。 输出: 首先将整数转换为等效的罗马数字。 然后,将该罗马数字的每个大写字母转换为其ASCII / UNICODE十进制值。 并输出这些总和。 例: 1991 -> MCMXCI -> 77+67+77+88+67+73 -> 449 ^ input ^ output 罗马数字: 这是一个可能有用的罗马数字转换器。 挑战规则: 标准的罗马数字规则适用,因此没有其他替代形式 IIII或VIIII替代IV和IX*。 罗马数字超过1000的马克龙线是¯(UNICODE nr。175)。因此,一线算作+175,两线算作+350。 您可以使用任何类型的输入和输出类型,只要它代表整数即可。 测试用例将在 1 - 2,147,483,647。 *罗马数字规则(引自维基百科): 数字是通过组合符号并加上值而形成的,所以II两个(两个)和XIII十三(一个十和三个)也是如此。因为每个数字都有一个固定值,而不是代表10、100等的倍数,所以根据位置,不需要像207或1066这样的“位置保持”零。这些数字写成CCVII(两百,五和二)和MLXVI(一千,五十,十,五和一)。 符号从左到右按值的顺序排列,从最大开始。但是,在某些特定情况下,为避免连续重复四个字符(例如IIII或XXXX),通常按如下方式使用减法表示法: I放在前面V或X表示少一,所以四是IV(一小于五)而九是IX(一小于十) X放在前面L或C表示减去十,所以四十是XL(十小于五十),九十是XC(十小于一百) C放在前面D或M表示少一百个,因此四百个CD(一百个小于五百)和九百个CM(一百个小于一千) 例如,MCMIV一千零九十四个,1904年(M一千个,CM是九百零四IV)。 现代使用罗马数字的一些例子包括: 1954年为MCMLIV;1990年为MCMXC; 2014年作为MMXIV SOURCE 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能短的答案。 适用标准规则于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法,完整程序。你的来电。 默认漏洞是禁止的。 …

2
给定一个真值表,输出一个满足它的Stackylogic程序
Stackylogic是我在上一个挑战中提出的一种编程语言:运行Stackylogic。请阅读该帖子以获取完整的详细信息和示例,但是下面解释了它的工作方式: Stackylogic采用0和1来输入和输出单个0 或1完成时。 程序由仅包含字符01?以及其中一行<的末尾恰好包含一个字符的行组成。行不能为空,并与该行<必须至少有一个0,1或 ?之前。 这是一个示例程序,用于计算两位的NAND: 1 ?< 11 ? 0 程序中的每一行都被视为一个堆栈,其底部在左侧,顶部在右侧。隐式地,在程序的第一行之前和最后一行之后有一个空栈(即空行)。 在<运行程序时,称为光标,标记堆栈开始。执行过程如下: 将顶部字符从光标当前指向的堆栈中弹出。 如果该字符为?,则提示用户输入a 0或a,1并像该字符一样进行操作。 如果字符是0,则将光标向上移动一个堆栈(到当前行上方的行)。 如果字符是1,则将光标向下移动一个堆栈(到当前行下方的行)。 如果光标移动到的堆栈为空,则输出从堆栈弹出的最后一个值(始终为a 0或1),然后结束程序。 否则,如果光标移动到的堆栈不为空,请返回步骤1并重复该过程。 应对这一挑战的关键是,所有Stackylogic程序都等同于一个真值表。输入一些预定数量的布尔值,并确定性地输出一个布尔值。 因此,您的任务是生成一个满足或模拟的Stackylogic程序,即与任何给定的真值表具有相同的输出。但是Stackylogic 可以模拟任何真值表并不明显,因此这是归纳法的证明: 基本情况 两个0输入真值表是始终输出0或 的表1。这些表的Stackylogic等效项 分别为0<和1<。 归纳步 假设Stackylogic可以模拟任何N输入的真值表。令M = N + 1。 M输入表T可以表示为两个N输入表T 0和T 1以及附加输入位B。当B为0时,使用T 0的结果。当B为1时,将使用T 1的结果。 例如,对应于伪代码的3输入真值表 if B: result = x OR y else: result = …

8
在Copeland–Erdős常数中查找数字
背景 所述克柏兰-尔杜斯常数是“0”的串联 以10为底的质数表示法。它的值是 0.23571113171923293137414... 另请参阅OEIS A033308。 Copeland和Erdős证明这是一个正常数。这意味着可以在Copeland-Erdős常数的十进制扩展的某个点上找到每个自然数。 挑战 给定一个正整数,将其以10为基数(不带前导零)并输出其在Copeland-Erdős常数的十进制数字序列中的第一个出现的索引。 允许使用任何合理的输入和输出格式,但输入和输出应以10为底。在这种情况下,可以假定不包含前导零。 从常量的第一个小数开始,输出可以是从0开始或从1开始。 实际结果可能会受到数据类型,内存或计算能力的限制,因此该程序在某些测试案例中可能会失败。但: 理论上,任何输入都应该工作(即不考虑这些限制)。 实际上,它至少应在前四个案例中起作用,并且每个案例的结果都应在不到一分钟的时间内得出。 测试用例 输出在此基于1给出。 13 --> 7 # Any prime is of course easy to find 997 --> 44 # ... and seems to always appear at a position less than itself 999 --> 1013 # Of course …

16
Narayana-Zidek-Capell数
给定输入n,生成第n个Narayana-Zidek-Capell数。最低字节获胜。 f(1)= 1,f(n)是上一层(n / 2)Narayana-Zidek-Capell项的总和。 测试用例: f(1)=1 f(9)=42 f(14)=1308 f(15)=2605 f(23)=664299

12
沙米尔的秘密分享
给定n(玩家数量),t(阈值)和s(秘密),输出n由Shamir的秘密共享算法生成的秘密。 算法 出于这一挑战的目的,将在GF(251)(size的有限域251,也称为整数mod 251)中进行计算。通常,将选择该字段,使其大小比的素数大得多n。为了简化挑战,字段大小将保持不变。251选择它是因为它是8位无符号整数可以表示的最大质数。 生成t-1(包括)范围内的随机整数[0, 250]。标明这些一个1通过一个T-1 。 构造一个t-1使用次多项式s为恒定值,并从步骤1中的功率的系数的随机整数x:F(X)= S + X *一个1 + X 2 * A 2 + ... + X 叔1 * a t-1。 (含)范围内(f(z) mod 251)每个输出。z[1, n] 参考实施 #!/usr/bin/env python from __future__ import print_function import random import sys # Shamir's Secret Sharing algorithm # Input is taken …
17 code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

3
计算扫雷板的3BV
该3BV一个的扫雷委员会代表解决了板,如果你已经知道了解决方案所需的左边点击的最低数量。它代表“ Bechtel的董事会基准价值”。这是他的网站对此进行解释。 以下是已解决的扫雷板。标记表示地雷;没有地雷的图块指示相邻地雷的计数,包括对角线,除非应将“ 0”的图块留为空白。该图显示了需要单击哪些瓷砖才能解决木板。 计入3BV的点击次数为: 对于每个空白区域(相邻的零个地雷)及其非空白邻居的洪水泛滥区域之一。 互为非地砖。 另一个例子(3BV = 39) 给定2D值数组,0以获取清晰1的地雷(或布尔值),返回3BV。 一块板的尺寸至少为8x8,最大为24x30(含)。您的程序应处理所有可能的电路板,而不仅仅是示例。 注意:板永远不会仅包含地雷。 I / O示例: [[0,0,0,0,0,0,0,0], [0,0,0,1,0,0,0,0], [0,0,0,1,0,0,1,0], [0,1,0,0,1,0,0,0], [0,0,1,0,0,0,0,1], [0,0,0,1,0,0,0,0], [0,0,0,0,0,0,1,0], [0,0,0,0,0,0,0,1]] 23 [[0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0], [0,0,0,0,0,1,1,1,0,0,1,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,0,0,0], [0,1,0,0,0,0,1,0,0,1,0,1,0,0,1,0,0,1,0,1,1,0,0,0,1,0,1,0,1,0], [0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0], [0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0], [0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1,0,1], [0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,1,1], [0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0], [0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0], [0,0,1,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0], [1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,1], [0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,0,0,0,1,1,0,0], [0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,1,0,1,1,0,0,0,1,0,0,0,1,1,0,0], [0,1,1,1,0,0,0,0,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0], [0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,1,0,0,0], [0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0]] 187

20
反向奇数运行
启示。 任务 在2到2 15个非负整数的给定列表中对奇数进行反向运算。 例子 0 1 →交通 0 1 1 3 →交通 3 1 1 2 3 →交通 1 2 3 1 3 2 →交通 3 1 2 10 7 9 6 8 9 →交通 10 9 7 6 8 9 23 12 32 23 25 27 →交通 23 …

11
我的表情符号干燥了吗?
这是我的宠物表情,比利: -_- 表情符号不喜欢在雨中,所以比利很伤心……让我们给他戴上雨伞让他感觉好些! /\ / \ / \ -_- 很好,他完全被伞遮住了!这是仅覆盖他的一部分的示例: /\ / \ / \ -_- 在这种情况下,他身体的第2部分和第3部分暴露在雨中。 伞有多种形状和大小,但总是由一系列的斜杠/和一系列的反斜杠组成\。例如,这些都是有效的保护伞: /\ / \ / \ /\ /\ / \ / \ / \ / \ 这些不是: / \ \/ \ / \ / \ 0\ / \ //\\ / \ 您需要确定表情符号的哪些部分暴露在雨中。 澄清说明 …

22
独特的筛子
给定一个整数列表,请创建一个布尔掩码,以便可以使用真实索引来过滤列表中的不同值。只要为对应于相同值的每组索引选择一个索引,选择哪个索引才是真正的索引就没有关系。 输入将是适合您的语言的格式的非负整数的非空列表,而输出将是遵循上述规范的布尔值列表。您可以在输出列表中使用自己的真实值和虚假值定义。 在下面的示例中,我定义1为真实且0为虚假。 [5, 4, 7, 1] Input [1, 1, 1, 1] Output Select only the values with with true indicies in the sieve [5 4 7 1] Contains zero duplicate values [5, 9, 7, 5, 6, 0, 5] [0, 1, 1, 1, 1, 1, 0] [ 9, 7, 5, …

7
正常和可视字符串还原
编写一些充当cat程序的代码。即,输入字符串并按原样输出。但是代码的正常还原必须输出输入字符串的正常还原。并且代码的可视化还原必须输出输入字符串的可视化还原。 正常的反转是字符串的反转字符序列。视觉还原是正常的还原,字符分别()[]{}<>替换)(][}{><为。 您可以使用任何包含字符()[]{}<>且在此挑战之前发布的代码页来定义字符。您必须对所有代码使用相同的代码页。您的原始代码在此代码页中必须是有效的,并且将您的任何反向代码应用于该代码页都会产生效果。 这是代码高尔夫,以字节为单位的最短代码获胜。 例 对于字符串AB(XY),其正常和视觉还原分别为)YX(BA和(YX)BA。 如果您的代码(使用假设语言)为AB(XY),则代码)YX(BA和(YX)BA应该分别输出输入字符串的正常和视觉转换。并且AB(XY)应该充当猫的程序。

1
比scanf更好的在C中读取多个int的方法
我试图在高尔夫挑战赛中以C语言读取4个整数,但我为解决该问题所需的代码长度感到困扰: scanf("%d%d%d%d",&w,&x,&y,&z) 那是29个字符,考虑到我的总代码大小是101个字符,这是巨大的。我可以摆脱第一个int,因为我真的不需要它,所以我得到了以下代码: scanf("%*d%d%d%d",&x,&y,&z) 这是27个字符,但仍然很长。 所以我的问题是,还有其他方法(技巧,函数,K&R东西)可以读取我不知道的整数,这可以帮助我减少这段代码吗? 非常感谢。 编辑:一些用户报告说我的问题类似于C中打高尔夫球的技巧 尽管本主题包含许多有助于缩短C代码的有用信息,但它与我的实际用例无关,因为它没有提供更好的读取输入的方法。 我不知道是否有比scanf更好的方法来读取多个整数(这就是为什么我首先要问这个问题的原因),但是如果有的话,我认为我的问题是相关的,并且与全局问题完全不同技巧和窍门。 如果没有更好的方法,那么如果有人找到更好的解决方案,那么我的问题在不久的将来仍然有用。 EDIT2:我正在寻找一个完整的程序(因此没有功能把戏)和所有可能的库。它必须是C,而不是C ++。目前,我的整个程序如下所示: main(w,x,y,z){scanf("%*d%d%d%d",&x,&y,&z)} 只要能缩短代码(这是代码golf :))并且只要它不是c ++,任何技巧都可以接受
17 code-golf  tips 

19
减去其素因子的平方和的范围内的最大数
公式 以数字300为例 300的素数是[2, 3, 5](作为300和素数的唯一数) 对这些数字进行平方会给你 [4, 9, 25] 汇总清单将为您提供 4 + 9 + 25 = 38 最后从原始数字中减去该总和(38)300-38 = 262(这是结果) 输入项 您的输入将是一个大于2的正整数。您必须检查从2到输入值(包括该值)的所有数字,并使用上述公式找到产生最大结果的数字。 输出量 您的输出将是两个数字,中间用空格,逗号,换行符或任何您允许的语言分隔(必须分开才能区分这两个数字)。这些可以输出到文件,stdout或任何您使用的语言。您的目标是找到在通过上述公式运行时产生最大输出的范围内的数字。显示的第一个数字应该是起始数字(例如300),第二个数字应该是公式生成的输出(例如262) 测试用例 Input: 3 Output: 2, -2 Input: 10 Output: 8, 4 Input: 50 Output: 48, 35 Input: 1000 Output: 1000, 971 Input: 9999 Output: 9984, 9802 …

10
压缩图像中的代码
这是奎因变化。 介绍 我们都编写了短代码,因为一些晦涩的原因,但是无论我们做什么,都会占用至少144像素/字节(使用12px字体)。但是,如果我们将图像编码为图像,将会发生什么?这是您今天的任务。 挑战 您的任务是读取自己的源代码(允许使用非正确的quines,例如,从字面上读取源文件),并通过基于ASCII设置像素的红色,绿色和蓝色分量来从中创建图像角色的价值。 例: 我们有字符串“ Hello world!”。 Hello world! 让我们将其转换为ASCII值: 72 101 108 108 111 32 119 111 114 108 100 33 将RGB值映射到它(如果源代码的长度不能被3整除,请使用0s作为剩余字符): __________________________________________________ | R | G | B || R | G | B || R | G | B || R | G | B …

10
受污染的方块
介绍 让我们观察以下仅由数字组成的正方形0 - 9: 1034 4167 8414 3542 这个正方形的外壳是: 1034 4 7 8 4 3542 它包含零,因此我们需要剥去外壳,留下: 16 41 这个正方形的外壳是: 16 41 它不包含任何零,因此是一种无污染的正方形。因此,基本上,无污染正方形的定义是正方形的外壳不包含零时。 任务 给定任意合理格式的数字平方(仅包含非负整数),请通过不断剥离任意合理格式的外壳来输出最大的无污染平方。 测试用例 测试用例1: Input Output 1234 1234 2345 2345 3456 3456 4567 4567 测试案例2: Input Output 123 123 204 204 346 346 测试案例3: Input Output 101 1 …
17 code-golf  number 

1
Symme-尝试此三角试用
通过添加一些空格和换行符(并使其保持相同的阅读顺序),可以将长度为正三角数(1、3、6、10、15 ...)的字符串排列为“等边文字三角形”。 例如,长度为10的字符串ABCDEFGHIJ变为: A B C D E F G H I J 编写一个包含这样的字符串的程序或函数,只包含字符0和1。(您可以假定输入有效。) 对于所得的“等边文字三角形”,输出(打印或返回)表示对称类型的四个数字之一: 2如果三角形具有双边对称性,则输出。也就是说,它从任意一个角到另一侧的中点都有一条对称线。 例子: 0 1 1 1 0 1 0 0 1 0 1 0 1 1 1 1 0 1 0 1 1 1 3如果三角形具有旋转对称性,则输出。也就是说,它可以旋转120°而没有视觉变化。 例子: 0 1 0 0 1 1 0 1 0 …

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.