编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

30
牛肝菌
相关但非常不同。 一个牛耕式转行书写法就是写作的所有其他行翻转或反转,并反转字母文本。 在此挑战中,我们将每隔一行反转一次,而使实际使用的字符保持不变。您可以选择要反转的行,只要它们彼此间隔即可。 只要您支持零行或更多行的可打印ASCII行(每行包含零个或多个字符),就可以采用任何合适的格式的文本。 例子: ["Here are some lines","of text for you","to make a","boustrophedon"]: ["Here are some lines","uoy rof txet fo","to make a","nodehportsuob"] or ["senil emos era ereH","of text for you","a ekam ot","boustrophedon"] ["My boustrophedon"]: ["My boustrophedon"] or ["nodehportsuob yM"] []: [] ["Some text","","More text","","","Last bit of text"]: ["Some text","","More …

21
木质词,小词
注意:这个问题有些粗鲁的话。 这个经典的Monty Python草图中有一个隐含的难题(您也可以在线准备脚本)。 各种短语被描述为“木质”或“小”,而一个短语被描述为“ PVC”。 给定一个短语,请根据以下列表使用其类型进行响应: woody: gone sausage seemly prodding vacuum bound vole caribou intercourse pert thighs botty erogenous zone ocelot wasp yowling tinny: litter bin newspaper antelope recidivist tit simpkins PVC: leap 规则 如果该输入属于上述列表中的一个,输出应该是woody,tinny或者PVC,相应地。 所有输入均为小写。 上面未列出的短语可以接受任何行为。 答案中最少的字节将获胜。

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 

22
打雪仗KoTH!
结果(UTC 2017年5月22日21:40:37) Master赢了18轮,输了2轮,并绑了0轮, Save One赢了15轮,输了3轮,并绑了2轮, Machine Gun赢了14轮,输了3轮,并绑了3轮, Monte Bot赢了14轮,输了3轮,并绑了3轮, Amb Bot赢了12 轮局,输掉8局,并绑0局, Coward赢了11局,输了3局,绑了6局, Pain in the Nash赢了11局,输了9局,绑局0局, Nece Bot赢了10局,输了7局,并绑了3局, Naming Things is Hard赢了10局,输了7局,并列3局, The Procrastinator赢得了10局,输了8局,并列了2局, Yggdrasil赢得了10局,输了10局,并列了0局, Simple Bot赢得了9局,输了4局,并列了7局, Table Bot赢得了9局,并输了6局。局,并列5局 Prioritized Random Bot获胜8局,输掉7局,并列5局 Upper Hand Bot赢了7轮,输了13轮,并绑0轮, Aggressor赢了6轮,输了10轮,并绑了4轮, Insane赢了5轮,输了15轮,并绑0轮, The Ugly Duckling赢了4轮,输了16轮,并绑了0轮, Know Bot赢了3局,输掉14局,并并列3局, Paranoid Bot赢得了0局,输了19局,并列了1局, Panic Bot赢得了0局,输了19局,并列了1局 不幸的是,我无法测试The Crazy X-Code …

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 这是一个代码高尔夫球。最低字节数获胜!

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.