Questions tagged «code-golf»

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

1
从日期算起一个数学方程式
在我的经济学课上,我和我的朋友们想出了一些方法来重新排列日期(以MM / DD / YY格式)中的数字,以创建有效的数学方程式。在大多数情况下,除级联外,我们还可以使用加,减,乘,除,括号和幂运算。 您的程序应该执行类似的操作。该程序应导入当前日期并插入运算符以根据以下规则打印表达式。 必须按顺序使用数字。不允许重新排列数字。 结果表达式必须在数学上准确。 允许加,减,乘,除,取幂和使用括号。数字的串联也是如此。但是,并非所有操作都是必需的。您不能使用减号使数字为负(例如-1+1+11=102010年11月11日)。 该程序必须在标准计算机上运行60秒。 例如,此挑战写于2015年11月10日。程序会将其解释为11/10/15。样本输出为(1+1)/10=1/5。 奖金 对于程序支持的以下每个选项,您可以将代码中的字节数乘以0.9。 该程序将打印所有可能形成的表达式,并用换行符分隔。如果以附加符号的升序列出表达式,则再乘以0.95。 该程序还适用于MM / DD / YYYY日期,除了可能的日期外,还可以打印年份的前两位数字。如果该奖金与第一笔奖金相结合,则必须打印出该年份的前两位数字的所有可能性。 该方案还打印当有多个等式用于方程(例如,11月11日,2011,1=1=1=1=1=1将被印刷的,除了可能性,例如1*1=1=1=1=1,1*1*1=1=1=1,和1*1*1*1=1=1。所有这样的情况下必须打印为所要达到的第一奖励。 该程序支持转换为2到16之间的基数。请注意,如果基数不是10,则表达式中的所有数字都必须以相同的基数 (Base b)编写,并且必须在表达式之后编写(并相应地b替换)。 这是代码高尔夫球,因此适用标准规则。以字节为单位的最短代码获胜。

21
产生一个XOR表
介绍 XOR是实现异或的数字逻辑门。大多数情况下,显示为^。二进制可能出现的四种结果: 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 这也可以看作二进制的加模2。在十进制中,我们需要将十进制转换为二进制,35 = 100011然后25 = 11001。为了计算XOR值,我们将它们彼此叠加: 100011 11001 ^ -------- 111010 = 58 in decimal 任务:给定大于1的整数N时,输出大小为N + 1的XOR表。例如,N = 5: 0 1 2 3 4 5 1 0 3 …

19
卢卡斯-纳奇数
背景 大多数人都熟悉斐波那契数 F(n): 0、1、1、2、3、5、8、13、21 ... 这些由F(n) = F(n-1) + F(n-2)与F(0)=0和的递归函数形成F(1)=1。0000 一个密切相关的序列是卢卡斯数 L(m): 2、1、3、4、7、11、18、29 ... 这些由L(m) = L(m-1) + L(m-2)与L(0)=2和的递归函数形成L(1)=1。0000 我们可以根据偶数/奇数索引在两个序列之间进行交替,并使用 A(x) = F(x)if x mod 2 = 0和A(x) = L(x)else 的构造。例如,A(4)等于F(4)以来4 mod 2 = 0。我们称这个序列中的卢卡斯- nacci号码,A(x): 0、1、1、4、3、11、8、29、21、76 ... 这可以通过递归函数来形成A(x) = 3*A(x-2) - A(x-4)与A(0)=0,A(1)=1,A(2)=1,和A(3)=4。005 挑战 给定输入n,输出n+1直至和包括A(n)如上所述的数字序列。最小字节(或等效字节,例如对于LabVIEW,由Meta分别确定)获胜。 输入项 单个非负整数 n。 输出量 对应于Lucas-nacci数字从A(0)到的子序列的数字列表A(n)。如上所述,列表必须按顺序排列。 …

6
反向Boustrophedon文字
Boustrophedon是一种双向文本,其中连续的行在从左到右和从右到左的阅读之间交替。字符方向也相对于读取方向是镜像的。在反向牛头文字书写系统中,字符被旋转180,而不是镜像。 挑战 编写一个程序/函数,该程序/函数接受文本字符串和许多列,然后将格式设置为指定数目的列的字符串输出,并将其交替上下翻转。 输入项 您的程序应接受两个参数: S,要格式化的文本字符串 N,列数 输出量 您的程序应输出N列包裹的S,并交替翻转180度。 第一行的读取方向始终是从左到右。 不必担心在何处放置换行符,可以在任何字符处分割行,而无需添加单词。 您可能会假设输入字符串将不包含任何换行符。 以下是程序在翻转时应支持的字符: Uppercase: ABCDEFGHIJKLMNOPQRSTUVWXYZ ∀qƆpƎℲפHIſʞ˥WNOԀQɹS┴∩ΛMX⅄Z Lowercase: abcdefghijklmnopqrstuvwxyz ɐqɔpǝɟƃɥᴉɾʞlɯuodbɹsʇnʌʍxʎz Punctuation: &_?!"'., ⅋‾¿¡„,˙' 测试用例 S: The quick brown fox jumps over the lazy dog. N: 30 Output: The quick brown fox jumps over ˙ƃop ʎzɐl ǝɥʇ S: Lorem ipsum dolor sit …

15
命理计算器
这项挑战的目标是从包含字符和数字的字符串中计算一种命理数字。 输入可以通过任何方便的方法(标准输入,参数,分隔的文件)。 该输入可以包含任何可打印的ASCII字符,而只是字母数字(A-Z,a-z,和0-9)必须被考虑。 如果找不到字母,也没有数字,则输出必须是介于1和之间的数字,9或者是星号*...(或即使0输入中包含任意数量的0 ,也没有其他内容,但这无关紧要)。 字母值以这种方式映射: 1 2 3 4 5 6 7 8 9 a b c d e f g h i j k l m n o p q r s t u v w x y z 的命理位是通过将串的每个值来计算,然后重复,直到只有一个数字。样本13579,Hello, world!,00 0 00,!@#$%^&*();,和3.141592: 13579 => 1 + 3 …
19 code-golf 

18
从输入字符串中删除n个以上连续的元音
我不喜欢连续三个以上元音的琴弦。您可以编写一个程序从单词中删除所有我不需要的元音吗? 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入是仅包含可打印ASCII字符(包括0x20至0x7E)的字符串。 输出是一个字符串,其中最多只能包含3个连续的元音。如果输入字符串中连续运行的元音超过3个,则程序应生成一个输出字符串,其中包含该运行中遇到的前三个元音,并丢弃其他任何连续的元音。 对于此挑战,Y不是元音。 这是代码高尔夫,所以最短的代码(以字节为单位)获胜。 测试用例 "Aeiou" => "Aei" "screeeen" => "screeen" "We're queueing up for the Hawaiian movie." => "We're queung up for the Hawaiin movie." "Spaces break runs: aei iou." => "Spaces break runs: aei iou."
19 code-golf  string 

19
反向和平方
在此挑战中,您将根据好奇的序列计算数字。 您的输入是一个十进制非负整数。反转此整数中的位,然后对数字求平方即可得到所需的输出。 反转位时,不得在输入中使用任何前导零。例如: 26 (base 10) = 11010 (base 2) -> 01011 (base 2) = 11 -> 11*11 = 121 此序列的前25个输入/输出: 0: 0 1: 1 2: 1 3: 9 4: 1 5: 25 6: 9 7: 49 8: 1 9: 81 10: 25 11: 169 12: 9 13: 121 14: …

2
Koopa Shell序列
在各种《超级马里奥》游戏中,绿色和红色的 Koopa Troopa弹壳可以在平坦表面上无摩擦地滑动,并破坏挡在途中的砖块。当壳碰到砖块时,块破裂,将其变成空白空间,而Koopa壳反转方向。例如,在这里观看红色外壳。 假设“超级马里奥”级别只有一个街区高,并且每个网格单元都是砖块或空白空间,但最左边的单元包含向右移动的外壳。该关卡也是周期性的,因此,如果壳退出该关卡的右边缘或左边缘,它将在另一侧重新进入。在这种情况下,壳将继续弹起并破坏该关卡中的所有砖块,直到不再有。最后一块砖块破裂后,壳会走多远? 挑战 编写一个包含非负十进制整数的程序或函数。这个数字以二进制形式表示,没有前导零(唯一的例外是0本身),对一个块的高级布局进行编码。A 1是砖块,a 0是空白空间。 Koopa外壳插入到水准仪的最左边缘,并且最初向右移动。例如,与输入关联的级别39为 >100111 因为100111是二进制39,以及>和<右表示和左侧分别移动壳。 一旦最后一块积木(aka 1)损坏,您需要打印或返回壳体行进的总距离。 对于输出39IS 7和水平看起来像这样的变化: Level Cumulative Distance >100111 0 <000111 0 >000110 0 0>00110 1 00>0110 2 000>110 3 000<010 3 00<0010 4 0<00010 5 <000010 6 000001< 7 000000> 7 <-- output 类似地,输出为6IS 1: Level Cumulative Distance >110 …

2
女士们,做点数学吧!
运算顺序PEMDAS是数学中的基本规则,它告诉我们应该执行哪些顺序运算: “括号,指数,乘法和除法以及加法和减法” 问题是,PEMDAS不是很通用!如果您想以其他顺序执行该怎么办?我们不会把括号弄乱,所以我们将它们放在第一个位置。 创建一个带有两个参数的程序: 一个字符串,告诉操作应该遵循的顺序。一些例子是"DAMES","SAD, ME","ME SAD","MEADS"。是的,空格和逗号都可以,因为这样可使顺序更容易记住。 在聊天中遵循以下建议:支持空格和逗号现在是可选的。 如果其中一个字母丢失,或者还有其他不应该出现的字母,则可以认为输入无效,并根据需要对其进行处理。 字符串或包含应求值的表达式的表达式。 以十进制数或整数形式返回表达式的结果。如果答案不是整数,则必须以十进制数形式返回。 规则: 如果您的语言更简单,可以将两个输入参数合并为一个。 它不必是字符串,但必须有字母。您不能将Addition替换为1,Division替换为2,依此类推。 您可以选择第一个输入。 该表达式从右到左从左到右求值。(规则的更改。在开始的12小时内,具有相反方向的所有提交者将被接受)。 这些操作使用以下符号:( ) ^ * / + -。例如,您不能使用¤代替+添加。 输入表达式中的空格无效作为输入 如果一元+/-直接在+或-后面,则该输入无效。考虑3+-2为无效的输入。可以按照您喜欢的方式对待它(不必产生错误)。如果+或-跟随除加号或减号之外的任何其他运算符,则按通常的方式处理:3*-3 = -9,sin(-2)=-0.909 该程序必须严格遵循字母,so "EMDAS", 1-3+4 => -6和"EMDSA", 1-3+4 => 2。 例子: Input: "EMDAS", "3+6*2/4-1" // -> 3+12/4-1 -> 3+3-1 -> 6-1 -> 5 Output: 5 …

11
计算向量的有界累积和
向量的累加总和可以通过简单地取所有先前元素的总和来计算。例如: vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1] cum_vec = [1 2 3 2 1 0 -1 -2 -1 0 1 2 1] 现在,施加一个上限和一个下限,这意味着如果累加总和处于上限,则停止增加,而如果累加总和处于下限,则停止减小。一个简单的例子: upper_lim = 2 lower_lim = -1 vec = [1 1 1 -1 -1 -1 -1 -1 1 1 …

30
分数混合不正确
分数混合不正确 在此挑战中,您将把带分数转换成不正确的分数。 由于不正确的分数使用较少的数字,因此您的代码将需要尽可能短。 例子 4 1/2 9/2 12 2/4 50/4 0 0/2 0/2 11 23/44 507/44 规格 您可以假设输入的分母永远不会为0。输入将始终采用x y/zx,y,z为任意非负整数的格式。您无需简化输出。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。

1
避免急剧下降!
背景 几个月前,您的人生冒险才刚刚开始。现在,在这个确切的时刻(是的,现在),经过几个月的苦难和辛勤工作,您和一群朋友正站在世界之巅。是的,你是对的,你在萨加玛塔山的山顶上。 但是,事情进展得并不理想。浓雾笼罩着您,一场令人难以置信的糟糕风暴即将来临。您没有在向上固定任何绳索,并且脚印已被雪覆盖。如果要生存(至少到今天为止),则需要尽快离开那里,但是您必须首先找到一种方法来知道那座山的哪一面应该降落。 幸运的是,您带来了旅行前修改过的卫星电话,因此您可以在其中编程和执行程序。 挑战 您已经能够以ASCII老式,无法在世界顶上看的方式将山脉的地图下载到手机上。您的任务是确定哪座山面的下降最容易,因此您可以增加生存的机会。为此,您有一个绝妙的主意,那就是在手机上编写一个程序,该程序将告诉您最简单的方法。(免责声明:这些活动是由专业人员完成的。在叙述中没有程序员受到伤害。请不要在家中尝试。) 地图仅由字符/和\(以及空格和换行符)组成。在任何地图中,山顶始终以 /\ \/ 从山顶的每一侧(1,2,3或4),您总会在山上找到“可能”的方式。 1 /\ 2 3 \/ 4 路线总是以以下方式显示: \ Steep-> / / / / <-Flat / \ Flat-> \ \ / \ <-Steep /\ \/ 每个新角色都位于其前任角色的左/右位置。每个字符的含义是: 如果斜线/反斜线与其顶峰侧平行->视为“陡峭”部分。 如果斜线/反斜线垂直于其顶峰侧->视为“平坦”部分。 *有关更多参考,请参见上图。 注意:边的长度可以不同,构成峰顶的字符也算作边的一部分。万一抽签,您可以选择其中任何一个。 不允许出现标准漏洞。 输入项 代表山脉地图或包含相同信息的纯文本文件的字符串。 要么 C:\....\file.txt 要么 \ / / / / …
19 code-golf 

12
我看到了即将到来
编写一个使用大于1或小于-1的整数的程序或函数。也就是说,输入将不是0、1或-1。 如果输入为2,则输出应为: |\_/| |___| 如果输入为3,则输出应为: |\_/\_/| |______| 如果输入为4,则输出应为: |\_/\_/\_/| |_________| 对于较大的输入,该模式以相同的精确方式继续。例如,如果输入为10,则输出应为: |\_/\_/\_/\_/\_/\_/\_/\_/\_/| |___________________________| 如果输入为-2,则输出应为: ____ | | |_/\_| 如果输入为-3,则输出应为: _______ | | |_/\_/\_| 如果输入为-4,则输出应为: __________ | | |_/\_/\_/\_| 对于较小的输入,该模式以相同的精确方式继续。例如,如果输入为-10,则输出应为: ____________________________ | | |_/\_/\_/\_/\_/\_/\_/\_/\_/\_| 输出可以打印或作为字符串返回,并带有可选的尾随换行符。负输入的输出的右上角“空”角可能是空格,也可能保持为空。 以字节为单位的最短代码获胜。

8
拥抱计算
根据Wikipedia页面上数字69的记录,请注意69 2 = 4,761和69 3 = 328,509一起使用所有十进制数字。数字69实际上是满足该属性的最低数字。 出于类似的原因,32,043是卓越的:32,043 2 = 1,026,753,849使用所有十进制数字。 如果我们要继续谈论以这种方式有趣的数字,则需要一些符号。 对于大多数整数ñ,权力ñ 2,...,ñ ķ将使用所有十个十进制数字至少(不包括前导零)一次的足够大的值ķ。如果它存在,我们称之为最低等ķ的卡多(累计十进制数字,最小指数)的ñ。 任务 编写一个接受单个非负整数n作为输入并计算并返回其CUDDLE的程序或函数。 如果n没有CUDDLE,则您可以返回除正整数以外的任何值,包括错误或空字符串,只要最终代码暂停即可。 测试用例 左列输入,右列输出。 0 1 2 15 3 10 4 10 5 11 6 12 7 7 8 5 9 6 10 11 7 12 6 13 6 14 7 15 9 16 …
19 code-golf  math 

5
少许泡菜
Python的pickle模块用于序列化,允许人们以一种可以以后重建的方式转储对象。为此,pickle使用了一种简单的基于堆栈的语言。 为简单起见,我们将处理这种语言的一小部分: ( Push a mark to the stack S'abc'\n Push a string to the stack (here with contents 'abc') l Pop everything up to the last mark, wrapping all but the mark in a list t Pop everything up to the last mark, wrapping all but the mark in …

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.