编程拼图和代码高尔夫

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

7
圣诞老人之家
圣诞老人之家 注意:这是我尝试设置的第一个挑战。它已经通过了沙箱,但是,如果您发现它有问题,请不要投下反对票,而要发表评论,以便我改善它。 背景 有一个古老的儿童拼图游戏,其中的挑战是要在中间画一个有屋顶和十字架的盒子,而又不能从纸上抬起笔或翻越任何线条两次。 在德国,它被称为“ das Haus des Nikolaus”或“圣诞老人之家”。老实说,我不记得我们曾经怎么称呼它。对于不熟悉该难题的任何人,请在此处获取完整的详细信息。 这是房子的ASCII艺术表示形式。 /\ /__\ |\/| |/\| ---- 挑战 编写程序或函数以您选择的任何语言绘制圣诞老人之家。 听起来太容易了?好吧,这就是陷阱。它还必须输出绘图的每个阶段并遵守拼图规则。您的程序不需要进行任何输入。完工的房屋必须与上图完全相同。 根据上面的网站,有44种可能的解决方案。您可以使用其中任何一个。这是一个ASCII艺术挑战,因此您无需计算解决方案,而只需绘制它。 输出量 下面显示了来自44个解决方案之一的所需输出的示例: ---- \ \ ---- __ \ \ ---- \ __\ \ \ ---- /\ /__\ \ \ ---- /\ /__\ |\ | \ ---- /\ /__\ |\/ |/\ ---- …

18
数字多样性
正整数可以以整数为底表示1 <= b < inf。 转换为该基数时,它具有一些不同的数字。 基数中的任何正整数都1具有1不同的数字。 base中大多数正整数2都有2不同的数字,2^n - 1只有形式为的例外1。 因此,可以用1唯一数字表示的整数基中的第一个正整数是1,可以用2不同数字表示的第一个正整数是2。 我们可以说,1是与数字多样性的第一个整数1,并2与数字多样性的第一个整数2。 挑战: 给定一个正整数,则n返回其数字分集为的第一个正整数(以10为基数*)n。 *如果您的语言仅支持特定的基础(例如,一元或二进制),则可以以该基础输出。 理论上,您的算法必须适用于任何正整数输入:它可能会失败,因为语言整数的精度对于输出而言太小;但可能不会失败,因为仅定义了基本转换。 测试用例 input output 1 1 2 2 3 11 4 75 5 694 6 8345 7 123717 17 49030176097150555672 20 5271200265927977839335179 35 31553934355853606735562426636407089783813301667210139 63 3625251781415299613726919161860178255907794200133329465833974783321623703779312895623049180230543882191649073441 257 87678437238928144977867204156371666030574491195943247606217411725999221158137320290311206746021269051905957869964398955543865645836750532964676103309118517901711628268617642190891105089936701834562621017362909185346834491214407969530898724148629372941508591337423558645926764610261822387781382563338079572769909101879401794746607730261119588219922573912353523976018472514396317057486257150092160745928604277707892487794747938484196105308022626085969393774316283689089561353458798878282422725100360693093282006215082783023264045094700028196975508236300153490495688610733745982183150355962887110565055971546946484175232 这是代码高尔夫,以字节为单位的最短解决方案。 OEIS:A049363-也是基数n中最小的全景数字。

30
将字符串嵌套在数组中n次
你必须出示其嵌套字符串函数s的数组中,n倍 >>> N("stackoverflow",2) [['stackoverflow']] 参数: s -ASCII字符串 n -一个整数 >= 0 规则 最短的代码获胜。 输出将是一个嵌套array,list或tuple(基于关阵列或类似类型) 测试用例 >>> N("stackoverflow",0) 'stackoverflow' >>> N("stackoverflow",1) ['stackoverflow'] >>> N("stackoverflow",5) [[[[['stackoverflow']]]]] 启发:将字符串嵌套在列表中n次,即列表的列表中的列表
16 code-golf  string 

6
戈尔夫·科德-Treiglad
阅读此ng Nghymraeg 挑战 给定威尔士语中的一个单词,输出该单词的所有可能变异形式。 变异 变异是指在某些单词之后或在某些语法环境中单词首字母的变化。 在威尔士语中,以下内容被视为“辅音”: b c ch d dd f ff g ng h l ll m n p ph r rh s t th 请注意,威尔士语中的ch,ng和rh等多个字符辅音被视为一个字母,因此一个辅音。 威尔士语字母表中的其他字母是元音,如下所列: a e i o u w y 参见下文,所有突变均在左侧带有原始字母,而在右侧带有结果突变字母: Original | Mutations ---------+--------------- p | b mh ph t | d …

11
输出最少字符数的“ Lorem ipsum”
我记得有人说过,代码大小应该以字节为单位,而不是以字符为单位,因为可以用奇怪的Unicode字符存储信息,而这些字符没有视觉意义。 情况有多严重? 在此挑战中,您应该输出以下来自维基百科的 Lorem Ipsum文本: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit …

11
随机拼错一个词
受此CR问题的启发 (请不要因为浏览CR而杀死我) 规格 拼错单词的可能性为: 1/3的时间不改变输出 1/3的时间删除随机字符 1/3的时间重复一个随机字符 对于所有字符,在输入中删除/复制给定字符的机会应相同。 如果两个连续的字符相同(区分大小写),则其中一个被修改的概率应与一个字符相同。即AA(AA或A或AAA)的输出都应具有相同的概率。 为了简单起见,输入将仅包含字母。 例子 输入第一行,随后几行都是可能的拼写错误。每行应具有相同的输出概率,示例中将输入排除在外,但仍应有1/3的输出概率。 foo fo oo ffoo fooo PPCG PPC PPG PCG PPPCG PPCCG PPCGG

14
非回文数
甲严格非回文数 N是一个数字,是不是在回文任何碱基(在基材2〜N-2)。 这些号码已列在OEIS中 例如,数19在碱2,3,4,5,6,... 17是:10011,201,103,34,31,... 12。这些表示都不是回文的,因此该数字严格是非回文的。 对于此挑战,如果数字不是回文数,则需要返回真实值,否则返回假值。 您可以假设传递给您的数字大于或等于0。 您的程序应该可以使用不超过语言整数大小的值。 测试用例: 真相: 0 1 2 3 4 6 11 19 47 53 79 103 389 997 1459 虚假: 5 7 8 9 10 13 16 43 48 61 62 101 113 211 1361 这是一个代码问题,所以请使您的答案尽可能短!

6
滚动ASCII模具
在此代码高尔夫球挑战中,您必须输出随机掷骰子的ascii艺术。 像这样: ________ /\ \ / \ 6 \ { 4 }-------} \ / 5 / \/_______/ 请注意: ________ /\ \ / \ 3 \ { 4 }-------} \ / 5 / \/_______/ 无效的输出,因为这在管芯上不可能产生结果 6(faces that could be up)*4(faces that could be the left face after the top is determined)*1(faces …

12
模拟袜子抽屉
背景 我收集了“平日袜子”,这是按星期几标记的七双袜子。当我洗袜子时,它们会结成一堆,在将它们放入壁橱之前,我必须将它们整理成正确的对。我的策略是一次从堆中拉出一只随机的袜子,然后放到抽屉里。每当抽屉上有一双相配的袜子时,我就会将它们绑在一起并放在壁橱中。您的任务是模拟此随机过程,并返回找到第一个匹配对所需的抽奖次数。 输入值 您的输入是整数N≥1。它代表“一周中的天数”:一堆中有N对袜子,每对都有一个单独的标签。如有必要,您也可以将PRNG种子用作输入。 输出量 您的输出是找到第一个匹配对之前我必须抽出的袜子数。例如,如果前两个袜子已经形成匹配对,则输出为2。 当然,输出是随机的,并且取决于绘制顺序。我们假设所有绘制顺序的可能性均等,因此每次绘制袜子时,该选择是统一的,并且独立于所有其他选择。 例 令N = 3,这样我们总共有6只袜子,标记为AABBCC。“袜子绘图协议”的一种可能运行如下: | Pile | Drawer | Pairs Begin | AABBCC | - | - Draw B | AABCC | B | - Draw C | AABC | BC | - Draw B | AAC | C | BB Draw A …
16 code-golf  random 

2
普通句子
编写一个程序或函数,给定输入字符串和标准偏差σ,该程序或函数沿正态分布曲线以平均值0和标准偏差输出该字符串σ。 正态分布曲线 y每个字符的坐标c为: 其中σ给定为输入,并且其中x在所述x轴的坐标c。 字符串中心的字符为x = 0。如果字符串的长度是偶数,则可以选择两个中间字符中的任意一个作为中心。 字符按以下步骤分隔0.1(例如,位于中心左侧的一个字符具有x = -0.1,位于中间一个右侧的字符具有x = 0.1,等等)。 打印字符串 线与字符一样,以分隔0.1。 每个字符打印在与该行y最接近自身的价值y值(如果该值恰恰是两条线的值之间,选择具有最大价值(随便怎么样round,通常回报1.0为0.5))。 例如,如果y中心值(即最大值)0.78的y坐标为,而第一个字符的坐标为0.2,则将有9行:中心字符在行上打印0,第一个字符在行上打印8。 输入和输出 您可以σ通过STDIN,函数参数或您所用语言中的任何类似形式将输入(字符串和)作为程序参数。 该字符串将仅包含可打印ASCII字符。该字符串可以为空。 σ > 0。 您可以将输出打印到STDOUT文件中,或从函数中返回(只要它是一个字符串且不说每行的字符串列表)。 尾随的新行是可以接受的。 尾随空格是可以接受的,只要它们不使行的长度超过最后一行(因此,最后一行不包含尾随空格)。 测试用例 σ String 0.5 Hello, World! , W lo or l l e d H ! 0.5 This is a perfectly normal sentence tly ec …
16 code-golf  math  string 

17
齿轮系,旋转
齿轮根据啮合齿轮的大小传递不同的速度量。 杰克有一台机器,它使齿轮系旋转。但您不知道最后一档的速度。 幸运的是,您是一位出色的高尔夫球手,所以您可以为他提供帮助! 所以我该怎么做? 每个齿轮由两个数字表示,内齿轮的半径和外齿轮的半径。 如果齿轮A为[a,b]且齿轮B为[c,d],则速度A与速度之比B为c:b。 给定齿轮列表(2元组列表),输出最后一个齿轮的速度。 您可以假设第一档的速度为1。 算出例子 假设我们的输入是[[6,12],[3,10],[5,8]]。 一档[6,12]的速度为1。 然后,第二个齿轮[3,10]的速度为1*12/3 = 4。 然后,最后一个齿轮[5,8]的速度为4*10/5 = 8。 测试用例 input output [[1,1],[2,2]] 0.5 (1/2) [[1,2],[1,2],[1,2]] 4 (2/1*2/1) [[6,12],[3,10],[5,8]] 8 (12/3*10/5) 规则 基本的代码高尔夫球规则适用。
16 code-golf 

5
发表评论
任务: 编写一个对此问题发表评论的程序。内容应为1234567890123456。 编辑: 如果您使用的是用户名和密码U,P则可以保留用户名和密码。(如果适用) 没有网址缩短器(如果适用) 您可能不使用浏览器控制台。

19
自动开箱器
介绍 有时,我的盒子太小,无法容纳任何物品。我需要你做一个盒子扩展器!因此,是什么让盒子在这个挑战中成为盒子。 OOOO O O O O O O OOOO 盒子的角总是空格。盒子本身可以用相同的字符制成。该字符可以是任何可打印的ASCII字符(空格除外)。因此,这些字符是: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 上述箱的侧面的长度是4个,3。您可以假设边长始终为正。这意味着这是您需要处理的最小盒子: # # # # 为了扩展一个框,您需要增加每边的长度。让我们通过上面的示例逐步进行此操作。我们首先选择盒子的上侧,即: OOOO 我们将其扩展一,因此得到: OOOOO 这是盒子的上部和下部。之后,我们对左右两侧进行相同的操作: O O O 成为: O O O O 现在我们重新组装盒子,结果是: OOOOO O O O O O O O O OOOOO 任务 给定一个框,将其展开1。该框可以多行或数组形式给出。 测试用例 OOOO OOOOO O O > O …

26
将n个长度为m的字符串转换为n个长度为m的字符串
编写一个程序,给定任何'n'个长度为'm'的字符串,并在以下条件下返回'm'个长度为'n'的字符串: 每个新字符串应包含与其他字符串相同索引的字母 例如,第一个输出字符串必须包含所有输入字符串的第一个字母,第二个输出字符串必须包含所有输入字符串的第二个字母,依此类推。 示例(字母下面的数字是字符串的索引): input: "car", "dog", "man", "yay" 012 012 012 012 output: "cdmy", "aoaa", "rgny" 0000 1111 2222 input: "money", "taken", "trust" 01234 01234 01234 output: "mtt", "oar", "nku", "ees", "ynt" 000 111 222 333 444 假设每次输入都是正确的 最短字节的代码获胜! 编辑: 由于有多种编程语言,并且每种语言都有很多可能的解决方案,因此我将针对每种编程语言和提供该语言的用户发布最短的解决方案。继续编码! 重新编辑: 多亏了用户Dennis,我为排行榜插入了一个代码段。 显示代码段 var QUESTION_ID=85255,OVERRIDE_USER=56179;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var …
16 code-golf  string 

8
下降的ASCII球
输入值 您会得到一个带有球和地面的2D地图。看起来像这样: 1 5 2 3 4 __________________________ 每个数字是一个球,并且_是地面。_除地面线外,其他任何行均不允许使用下划线字符。0-9地面以上只能有空格,换行符和数字。您不能假设最后一行是地面高度-允许在地面以下空线。如果确实有帮助,您还可以添加空格以填充空白行。 球的编号可以从0到9,可以互相重叠放置,但不能放在地下。球的号码将是唯一的。 假设每个字符都是一米。 从pastebin获取地图! 测试案例1 -应该输出像这种 测试案例2 -应该产生相同的结果,第一张地图 挑战 您面临的挑战是从文件或stdin(您可以使用)中读取类似的地图,cat balls.txt | ./yourexecutable并在每个球撞击地面时输出其速度。 这是速度的公式: 假设这h是地面的线号和球的线号之间的线号差,并且g等于10m/s^2。 输出量 您应该m/s在地面输出每个球的数量和速度。例如N - Vm/s,其中N是球数,是球V的速度。如果需要,还可以输出数组。 编码愉快!:)

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.