Questions tagged «code-golf»

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

24
给我画一个多米诺骨牌
挑战 给定两个数字0-9作为输入,输出一个多米诺骨牌(来自二重多米诺骨牌集),在两个面上都具有这些点数(点)。十个可能的面看起来像这样(用管道分隔): | | o| o|o o|o o|o o o|o o o|o o o|o o o | o | | o | | o | | o |o o|o o o | |o |o |o o|o o|o o o|o o o|o o o|o o o 或在单独的行上: ----- o ----- o …

2
我如何向银行的柜员要钱?
我需要去银行取一些钱。我需要提取30美元,22美元来支付我的室友的上网费以及8美元的洗衣费。由于这些都不能改变,我需要将$ 30分成两个大小的两个分区。这意味着当出纳员问我如何要我的30美元时,我将不得不提出请求。我可以告诉他们我要二十,五个和五个。但是我想使我的请求尽可能简单,以避免重复自己。为了使我的请求更简单,我可以要求我的现金包含20个现金,并且至少包含2个现金,因为总数暗示了8个现金,但更好的是,我可以简单地要求我收到的钞票中的一个是一美元的钞票(如果您不相信这一点,只需尝试赚29美元而不赚8)。 这样很好,但我每次去银行时都需要进行此计算,所以我想我会写一个程序来执行此操作(您是否已编写一个程序来为我执行此操作)。 您的程序或函数应使用代表我需要进行的所有付款的整数列表和代表银行可用的纸币面额的一组整数,并且您必须输出最小面额的列表,以使每种方式都能得出总计包括该种面额的清单可以清晰地分为付款清单。 额外规则 您可以假定面额列表将始终包含a 1,也可以将其自己添加到每个列表中。 一些输入将具有多个最小解决方案。在这些情况下,您可以输出其中之一。 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 Payments, denominations -> requests {22,8} {1,2,5,10,20,50} -> {1} or {2} {2,1,2} {1,5} -> {1} {20,10} {1,2,5,10,20,50} -> {} {1,1,1,1} {1,2} -> {1,1,1} {20,6} {1,4,5} -> {1} {2,6} {1,2,7} -> {2} {22, 11} {1, 3, 30, 50} -> {1, 3} {44, …
35 code-golf  math 

30
那是很多猴子
在无限猴子定理指出,考虑到无限的时间,一台机器发送的随机字符络绎不绝永远键入任何给定的文本。 在我看来,这是一个挑战的好主意。 处理 为了猴子化字符串A,应采取以下步骤: 取一个空字符串。我们将其称为字符串B。 选择一个统一可随机打印的ASCII字符(范围0x20为到的0x7E字符),然后将该字符添加到B中。 如果A是B的子字符串,则B是我们的猴子化字符串。否则,重复步骤2,直到A是B的子串。 此过程仅是示例,根据您的语言,可能存在更简便的方法。只要获得相同的输出分配,就不需要完全遵循此方法。 挑战 编写一个程序或函数,该程序或函数将给定任何合理格式的非空字符串,然后返回该字符串的猴子化版本。 您的程序实际上只需要为长度为3或更短的输入工作。对于较长的输入,无论有无输出,都允许提早终止。 例 不幸的是,由于该问题的随机性和大量的输出,很难为该问题创建示例。 但是,我可以在Hastebin上为输入提供一个示例hi。 计分 由于这是代码高尔夫球,因此字节数最少的提交将获胜。

6
可视化尼科马修斯定理
Nichomachus定理将总和的平方与立方体总和联系起来: 并具有漂亮的几何可视化效果: 挑战:在ascii中创建此可视化的2d部分。 您将需要确保图保留所有视觉分界。这是最简单的用四种“颜色”进行的操作,尽管只用三种就可以实现(有关详细信息,请参见下面的最后一个示例)。对于四种颜色,您可以使用两种颜色来区分“条”中的区域(即,组成一个立方体的不同部分),而使用两种颜色来区分相邻的条带。如果您愿意,也可以使用四种以上的颜色。如果有任何令人困惑的地方,下面的示例输出应予以澄清。 输入输出 输入是一个大于0的整数。输出是一个与以下示例类似的ascii网格,对应于上图中该输入数字的扁平网格。开头和结尾的空格都可以。 这是标准规则的代码高尔夫。 样本输出 N = 1 # N = 2 #oo o@@ o@@ N = 3 #oo+++ o@@+++ o@@+++ +++### +++### +++### N = 4 #oo+++oooo o@@+++oooo o@@+++@@@@ +++###@@@@ +++###@@@@ +++###@@@@ oo@@@@oooo oo@@@@oooo oo@@@@oooo oo@@@@oooo N = 5 #oo+++oooo+++++ o@@+++oooo+++++ o@@+++@@@@+++++ +++###@@@@+++++ +++###@@@@+++++ +++###@@@@##### oo@@@@oooo##### …

24
加素vs减素
我们大多数人都知道... 所有素数p>3都是形式 但是,在一定范围内,加数(6n+1)和减数(6n-1)有多少? 挑战 给定一个整数k>5,算多少primes<=k是PlusPrimes多少是MinusPrimes。 例子 因为k=100我们有 [5, 11, 17, 23, 29, 41, 47, 53, 59, 71, 83, 89] 12个减号 和 [7, 13, 19, 31, 37, 43, 61, 67, 73, 79, 97] 11个加号 因为k=149我们有 [5, 11, 17, 23, 29, 41, 47, 53, 59, 71, 83, 89, 101, 107, 113, 131, …

30
这串字母是不是在做车轮?
挑战灵感是我在某处看到的: 单词“尼姑”只是字母ñ做一个侧手翻 您面临的挑战是取一个字符串并确定它是否是执行车轮的第一个字母。 规则 字符串是满足以下条件的字母: 第一个字母与最后一个字母相同。(这封信不能落在头上。) 该字符串在每个字符之间交替显示。 翻车的字母是n和u,m和w,b和q。需要注意的是n和w一起不 cartwheeling字母,也不是w和b。 您将使用我们的任何标准输入法获取字符串。 如果字符串是一个翻车字母,您将输出一个真值;否则,您将输出一个假值。可以使用任何标准输出方法来完成输出。 附加规则: 只有小写字母侧手翻n/ u/ m/ w/ b/ q需要处理。 您可能会认为输入永远不会为空。 一个字符的字符串不是有效的车轮。 测试用例 Input -> Output nun -> truthy nunun -> truthy nunununu -> falsy wmw -> truthy wmwun -> falsy bqbqbqbqbqb -> truthy v^v^v -> falsy AVAVA -> falsy OOO -> …

30
#OctothorpeAsciiArt
一个井号(也称为数字符号,哈希或主题标签,或井号)是以下ASCII字符: # 那不是很有趣的形状吗?让我们做更大的版本!所以这是您的挑战: 给定正整数N,输出大小为N的ASCII井号。 例如,大小为1的ASCII哈希标签如下所示: # # ##### # # ##### # # 允许在每行尾随空白,但不是必需的。 输入将始终是有效的正整数,因此您不必处理非数字,负数或0。您的输出可以是任何合理的格式,因此输出到STDOUT,返回字符串列表或带有换行符,二维字符矩阵,写入文件等都可以。 测试用例 2: ## ## ## ## ########## ########## ## ## ## ## ########## ########## ## ## ## ## 3: ### ### ### ### ### ### ############### ############### ############### ### ### ### ### ### ### ############### …

17
让我们做一些“ enciph5r47g”
这是让我们做一些“ deciph4r4ng”的逆过程 在这个挑战中,您的任务是加密字符串。幸运的是,该算法非常简单:从左向右读取,每个典型的书写字符(ASCII范围32-126)必须替换为数字N(0-9),以表示它与字符N + 1相同之前的位置。例外是该字符未出现在原始字符串的前10个位置内。在这种情况下,您只需简单地再次打印字符。有效地,您应该能够从原始挑战中撤消操作。 例 输入字符串"Programming"将以这种方式编码: 因此,预期输出为"Prog2am0in6"。 澄清和规则 输入字符串将仅包含32-126范围内的ASCII字符。您可以假设它永远不会为空。 保证原始字符串不包含任何数字。 字符一旦被编码,就可以由随后的数字来引用。例如,"alpaca"应编码为"alp2c1"。 引用永远不会环绕字符串:只能引用以前的字符。 您可以编写完整的程序或函数,以打印或输出结果。 这是代码高尔夫,所以最短的答案以字节为单位。 禁止出现标准漏洞。 测试用例 Input : abcd Output: abcd Input : aaaa Output: a000 Input : banana Output: ban111 Input : Hello World! Output: Hel0o W2r5d! Input : this is a test Output: this 222a19e52 Input : …

11
为我真正的朋友打高尔夫球
...以及我的代码朋友真正的高尔夫。 这是一个以一岁的XKCD漫画为基础的挑战,该漫画主要由吐司(漫画中第一个漫画的模仿者)组成,遵循不同的模式,但略有不同。 您的任务是编写一个程序(或函数),以将漫画中任何吐司的上半部分(包括在内的所有内容friends)作为输入(通过stdin或函数参数)并输出(或返回)下半场。您不必处理无效输入,适用标准漏洞,以字节为单位的最短代码获胜。 例子 为了帮助那些不想从任何其他地方复制吐司的人,这里的所有内容都分为输入和输出。 Input: Champagne for my real friends Output: and real pain for my sham friends! Input: Pseudopods for my real friends Output: and real pods for my pseudo-friends! Input: Petticoats for my real friends Output: and real coats for my petty friends. Input: Loosestrife for my …

15
11 =(1 + 2 + 3 + 4 + 5)-(1 + 2 + 3)+(6)-(4)
给定正整数N,您的任务是返回以下算法达到N所需的步数: 找到最小的三角形的数目Ť 我使得Ť 我 ≥Ñ。建立相应的列表L = [1,2,...,i]。 当L的项之和大于N时,从列表中删除第一个项。 如果L项的总和现在小于N,则增加i并将其附加到列表中。继续执行步骤2。 一旦达到N,我们就会停止。系统只会执行第一步。步骤#2和#3可能根本不处理。 例子 以下是N = 11的示例: 所以预期输出用于N = 11是4。 其他例子: N = 5-我们从 T 3 = 1 + 2 + 3 = 6开始,然后是 2 + 3 = 5。预期输出: 2。 N = 10-因为 10是一个三角数,所以只需要第一步: T 4 = 1 + 2 + 3 + …

26
做出超级杂技
背景 庆祝Dyalog APL 16.0的发布,该问题的解决方案是{⊢⌺(≢⍵)⊢⍵}说明 任务 给定具有奇数长度 n的可打印ASCII字符串,使n × n正方形,其中字符串水平居中,重复复制以垂直居中,并且在每行和每列中都具有相同的字符串。请注意,除居中的字符串以外的所有字符串都将被切除,以保持正方形的大小n × n。 您的代码说明将不胜感激。 规则 您可能会有尾随空格和换行符(这包括右下三角形) 您可以返回字符串列表 使用字符串的示例ABXCD: n为5。首先,我们绘制两个居中的字符串,一个水平和一个垂直: ┌─────┐ │A│ │B│ │ABXCD│ │C│ │D│ └─────┘ (为清晰起见,添加了5×5边界框) 然后,我们水平和垂直放置所有可能的杂技: 一种 AB ┌─────┐ │ABX│CD │ABXC│D │ABXCD│ A│BXCD│ AB│XCD│ └─────┘ 光盘 d 最后,我们只返回边界框内的内容: ABX ABXC ABXCD BXCD XCD 测试用例 World: Wor Worl World orld rld …
35 code-golf  string 

30
我要写多少钱?
写数字是编程的Hello世界,通常是数字1-10。 我想写很多数字!很多很多的数字。但是我必须写多少个数字? 任务 给定整数输入,请提供一个数字作为输出,该数字将为我提供包含从0到输入(含)在内的所有整数的字符串中的位数。否定标识符(“-”)计为单个字符。 示例I / O 输入:8 写入:0,1,2,3,4,5,6,7,8 输出:9 输入:101 写出:0,1,2,3 ....,99,100,101 输出:196 输入:102 写出:0,1,2,3 ....,100,101,102 输出:199 输入-10 写出:0,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10 输出:22 这是一个代码高尔夫球。最低字节数获胜!

30
画圆弧
绘制抛球的抛物线轨迹。 输入是球的初始向上速度,为正整数v。每秒,球向右移动1空间并v垂直移动,然后由于重力而v减小1。所以,向上的速度最终从下台v到0,向下-v,最终下跌回落到其初始高度。 球的位置描绘出抛物线。在水平位置x,其高度为y=x*(2*v+1-x)/2,(0,0)球的初始位置在左下方。 输出球轨迹的ASCII艺术作品,O其所占据的坐标为。输出应该是一条多行文本,而不是随时间变化的路径动画。 输出不应包含前导换行符,并且最多应包含尾随换行符。底线应与屏幕的左边缘齐平,即没有多余的前导空格。尾随空格可以。您可以假定输出线宽适合输出端子。 v = 1 OO O O v = 2 OO O O O O v = 3 OO O O O O O O v = 4 OO O O O O O O O O v = 10 OO O O O O O …

20
总结一下
一个简单但希望不是很琐碎的挑战: 编写一个程序或函数k求和数的乘积n。进一步来说: 输入:两个正整数n和k(或有序整数对等) 输出:所有的正除数的总和n是k整数次方 例如11!= 39916800有六个因数为立方的除数,即1、8、27、64、216和1728。因此,给定输入39916800和3,程序应返回它们的总和2044。 其他测试用例: {40320, 1} -> 159120 {40320, 2} -> 850 {40320, 3} -> 73 {40320, 4} -> 17 {40320, 5} -> 33 {40320, 6} -> 65 {40320, 7} -> 129 {40320, 8} -> 1 {46656, 1} -> 138811 {46656, 2} -> 69700 {46656, 3} -> …

30
高效计数
当我还是个孩子的时候,想算一算生活中的美元钞票时,我会大声数出: 一,二,三,四,五,六,七,八,九,十; 十一,十二,十三,十四,十五,十六,十七,十八,十九,二十; 21、22、23、24、25 ... 最终我厌倦了念出这些多音节数字。出于数学考虑,我创建了一种更有效的计数方法: 一,二,三,四,五,六,七,八,九,十; 一,二,三,四,五,六,七,八,九,二十; 一,二,三,四,五,六,七,八,九,三十... 如您所见,我只会说出与前一个数字已更改的数字。这还有一个额外的优势,即它比数字的英文名称具有更大的重复性,因此需要较少的脑力来进行计算。 挑战 编写一个程序/函数,该程序接受一个正整数,然后输出/返回我将如何对其进行计数:即,最右边的非零数字和所有尾随的零。 例子 1 1 2 2 10 10 11 1 29 9 30 30 99 9 100 100 119 9 120 20 200 200 409 9 1020 20 不需要完整的测试用例列表。这是OEIS上的A274206。 规则 理论上,您的条目必须适用于所有正整数,而忽略精度和内存问题。 输入和输出必须为十进制。 您可以选择将输入和/或输出作为数字,字符串或数字数组。 输入保证为正整数。您的输入可以为无效输入做任何事情。 这是code-golf,因此以字节为单位的最短代码获胜。
35 code-golf  number 

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.