编程拼图和代码高尔夫

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

30
“做错了”的成语
做错事 今天在工作中,我的一位同事正在描述do while(false)的用例。他正在与之交谈的人认为这很愚蠢,而且如果陈述会更好,那就简单了。然后,我们浪费了一半的时间来讨论编写等同于以下内容的最佳方式: do { //some code that should always execute... if ( condition ) { //do some stuff break; } //some code that should execute if condition is not true if ( condition2 ) { //do some more stuff break; } //further code that should not execute if condition …
47 code-golf 

17
修复Froot Loop项链
假设您要在项链,手链,鞋带或其他物品上串一串Froot Loops。有6层环的颜色:- [R编,ö范围,ÿ ellow,克颖,b略,和p urple。您希望您的线束从最左边的红色开始,以彩虹顺序向右循环,以紫色结束。就是说,您想要这样做,以便您的链可以由roygbp重复多次(可能为0)的字符串表示。 问题是,您已经串起了循环,没有按任何特定的顺序进行。您应该吃还是不吃哪个循环,以便最大程度地增加从左到右的正确彩虹循环次数,第一个循环为红色,最后一个循环为紫色? 编写一个程序或函数,该程序或函数接受任意字符串,roygbp并打印或返回相同长度的字符串,e以代替要吃的循环和不吃东西n的循环。 例如,如果您的Froot Loop链看起来像 输入将是 gorboypbgbopyroybbbogppbporyoygbpr 从左到右,我们可以找到3个完整的roygbp彩虹序列,但是有些循环需要被消除。因此输出将是 eenenneennenennneeeeneennenennnnne 产生一个完美的3周期链: 如果输入中没有完整的彩虹周期,则输出将全部为e,并且线束最终无环。例如输入proygb有输出eeeeee。相反,proygbp具有输出ennnnnn。 您可以假设所有输入链都至少有一个循环。 以字节为单位的最短代码获胜。
47 code-golf  string 

30
视网膜还是垃圾?
我们生活在一个技术时代,可以在电视上显示精美的8K屏幕,甚至可以在手机上使用2K显示屏,以享受移动浏览的乐趣。近年来,在屏幕技术方面,我们已经走了很长一段路。 其中一个产品是苹果公司Retina所流行的术语。这是指所讨论的显示器的像素密度非常高,以至于在10-12英寸的观看距离处,不容易拾取单个像素。 史蒂夫·乔布斯(Steve Jobs)表示,发生这种情况的像素密度大约为每英寸300像素,并且他们开始在设备上采用此范围内的像素密度,并使用Retina流行语来做广告。 像素密度可以通过以下公式计算: 其中d,屏幕的对角线以英寸w为单位,水平轴上h的像素数,垂直轴上的像素数。 你的任务 对于此任务,您将使用Retina标准来确定哪些产品值得购买。身为现代消费者,在购买设备时,您要确保自己获得的是好产品,而不是90年代的某些设备!因此,您想构建一个程序或函数,将屏幕的宽度,高度和对角线长度作为输入或函数参数,并D > 300通过打印到屏幕或返回来告诉您特定屏幕是否符合视网膜屏幕()的要求。 由于您鄙视非Retina设备,因此您的程序或函数将Retina!在设备合格或不合格Trash!时输出。 您可以假设所有数字都大于0。宽度和高度的像素值将始终为整数。屏幕大小可以任何方式解释,只要它支持小数。输入可以按照您选择的任何顺序进行,也可以多达3条单独的行。 示例I / O 1920 1080 4.95 -> Retina! 2560 1440 5.96 -> Retina! 1920 1080 10.5 -> Trash! 10 10 0.04 -> Retina! 4096 2160 19(.0) -> Trash! 8192 4320 100.00 -> Trash! 3000 1500 11.18 -> Retina! …
47 code-golf 

16
Sierpinskified代码
编写一个矩形的文本块,当该文本块布置在Sierpinski地毯中时,使用相同大小的空白区域作为空白部分,以创建一个输出地毯迭代次数的程序。 例如,如果您的文本块是 TXT BLK 然后运行程序 TXTTXTTXT BLKBLKBLK TXT TXT BLK BLK TXTTXTTXT BLKBLKBLK 应该输出,1因为程序的形状代表了Sierpinski地毯的第一次迭代。 同样,正在运行 TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK BLKBLK BLKBLK BLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXT TXT TXT TXT BLK BLK BLK BLK TXTTXTTXT TXTTXTTXT BLKBLKBLK BLKBLKBLK TXTTXTTXTTXTTXTTXTTXTTXTTXT BLKBLKBLKBLKBLKBLKBLKBLKBLK TXT TXTTXT TXTTXT TXT BLK …

15
每日ASCII艺术#1-双结
编写一个完整程序或一个函数,该程序或函数需要一个正整数N作为通过STDIN /命令行/ ARGV或函数参数的输入,并打印一个N与STDOUT 相对应的ASCII双结。 ASCII双结看起来像这样: __ __ __ __ __ __ / \/ \/ \/ \/ \/ \ | /\/ /\/ /\/ /\/ /\/ /\ | | \/ /\/ /\/ /\/ /\/ /\/ | \ \/\ \/\ \/\ \/\ \/\ \/ /\ \/\ \/\ \/\ \/\ \/\ \ | /\/ …

30
反手^ H ^ H ^ H ^ H ^ H ^ Hspaces
在某些终端上,按退格键将生成控制代码^H以删除前一个字符。这引起了一个俗套的成语,其中假装因喜剧效果而假装: 对这个傻瓜^ H ^ H ^ H ^ Hgentleman很好,他是从公司总部来的。 给定一个或多个字符串^H,则在每个字符串上输出退格结果^H。输入将仅使用可打印字符(ASCII 32-126),并且^仅显示为^H。空文本永远不会出现退格键。 您可能不会假定输出环境支持控制代码,尤其是退格代码\x08。 >> Horse^H^H^H^H^HCow Cow >> Be nice to this fool^H^H^H^Hgentleman, he's visiting from corporate HQ. Be nice to this gentleman, he's visiting from corporate HQ. >> 123^H45^H^H^H78^H 17 >> Digital Trauma^H^H^H^H^H^H^H^H^H^H^H^H^H^HMaria Tidal Tug^H^H^H^H^H^H^H^H^H^H^H^H^H^H^HDigital Trauma Digital Trauma 排行榜 这是马丁·布特纳(MartinBüttner)提供的按语言排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 …
47 code-golf  string 

6
让我们按封面来判断一些书
每个人都知道内容是问题所在。但是好标题也有帮助,这是我们看到的第一件事。现在是时候将第一印象变成一个程序,并弄清楚哪种标题会获得更多支持。 您面临的挑战是编写一个程序或函数,该程序或函数将PPCG问题的标题作为输入,并返回其得分的预测。 例如Counting Grains of Rice,59在这种情况下,您可能会收到输入作为输入,并且您将尝试返回接近分数的内容。非整数的猜测是可以的,但低于或等于猜测的-20则不行。 以下是用于测试和评分的数据: http://data.stackexchange.com/codegolf/query/244871/names-and-upvotes 评分:您的程序将针对该站点(PPCG)历史记录中的每个问题运行,而不包括已关闭的问题。ln(score + 20)然后,该功能将应用于每个分数和每个猜测。两个结果值集之间的均方根误差就是您的得分。越低越好。 例如,一个程序每次猜测为0的得分为0.577,而每次猜测为11的程序得分为0.362。 请计算您的分数,并将其包括在答案标题中。还请包括您的程序对这个问题将获得多少票的预测。 限制条件: 为防止过多的硬编码,请不要超过1000个字符。 必须在一台合理的计算机上在一分钟之内运行上面的所有数据集。 标准漏洞已关闭。 这是一个用Python编写的测试器,供您使用和/或消除歧义: import sys import math import csv scores_dict = {} with open(sys.argv[1], 'r') as csv_file: score_reader = csv.reader(csv_file) for score, title in score_reader: if score == 'Score': continue scores_dict[title] = int(score) def rate_guesses(guesser): …

30
非常简单的三角形
编写一个程序或函数,该程序或函数采用正整数(通过stdin,命令行或函数arg),并打印或返回一个由许多小三角形平铺在一起的字符串,并交替显示它们的指向: /\ /__\ 如果输入为,则唯一的三角形是输出1。 如果输入为2,则输出为 ____ /\ / /__\/ 如果输入为3,则输出为 ____ /\ /\ /__\/__\ 如果输入为4,则输出为 ________ /\ /\ / /__\/__\/ 等等。你的程序必须支持的投入高达2 16个 - 1 = 65535。 细节 最左边的三角形始终指向上方。 可能有尾随空格,但可能没有多余的前导空格。 可能会有一个可选的尾随换行符。 请注意,1输出为两行,否则为三行。这是必需的。 以字节为单位的最短提交获胜。

30
一个数字可以被每个数字整除吗?
我和我的朋友正在AP计算机科学课程的一个实验室里工作,并决定将一个问题编码为一个高尔夫,因为完成后我们仍然有一半的课程免费。这是问题: 给定数字n,n是否可被其每个数字整除? 例如,128将通过此测试-它可以被1,2和8整除。任何具有零的数字将自动取消该数字的资格。尽管您可以使用其他语言并根据需要发布解决方案,但我们最感兴趣的是了解紧凑型人员如何用Java编写程序,因为这是我们在课堂上使用的语言。到目前为止,我们都有51。这是我当前的代码: public boolean dividesSelf(int n){for(int p=n;n%10>0;)n/=p%(n%10)>0?.1:10;return n<1;} // 51 characters // Breakdown: // for(int p=n; Saves one semicolon to put declaration into for loop // n%10>0;) Basic check-for-zero // n/= Pretty simple, discarding one number off of n at a time // p%(n%10)>0? If p (the given value) …
47 code-golf 

14
用您喜欢的单词使代码平方
选择您喜欢的没有重复字母的 6字母普通英语单词,例如wombat。 在不带注释的N×N个字符的网格中编写程序,以使每一行和每一列都以小写形式以任意顺序包含单词的所有字母。该程序必须输出36个字符或更多字符的单词定义。 规则 输出到标准输出。没有输入。 您的单词必须在Dictionary.com上并且只能包含az。没有专有名词,缩写,缩写,紧缩。 您的程序和输出只能包含可打印的ASCII字符(十六进制代码20至7E)。(这不计入程序网格中的必要换行符。) 注释是编译器或解释器传统上忽略的任何内容。您可以使用对输出无贡献或未正式执行的代码。 输出定义应该是语法上和准确的,但肯定是有趣或聪明的。 至少包含单词的6个唯一字母小写的任何行或列均有效。对角线无所谓。 计分 这是代码高尔夫,但是由于所有提交的文件都必须采用相同的正方形格式,因此您可以简单地用N指定得分。最低的N获胜,当然N不能低于6。如果是平局,则以票数最高的答案为准。 例 如果您说的话,wombat您的程序可能如下所示(N = 7): wombatD ombatEw mbatFwo bat(wom atWwomb tBwomba )wombat 注意,每一行和每一列都有字符w o m b a t。 输出可能是:(40个字符) Cute short-legged Australian marsupials.

15
元素周期表-代码高尔夫
基于实用高尔夫-美国 您的任务是在给定元素名称的情况下找到元素的缩写(符号),最多为ununoctium(118)。使用Wikipedia上的元素周期表。 多亏了ossifrage,您可以在http://pastebin.com/DNZMWmuf找到完整的缩写元素列表。 您不得使用任何外部资源。此外,您可能不使用任何专门有关元素周期表元素的内置数据。有标准漏洞。 输入项 输入可以从标准输入,文件prompt,input等等。 输入格式: 以下所有有效输入: Carbon carbon CARBON cArBOn 本质上,元素名称-不区分大小写。 您不必处理拼写错误或任何无效的元素名称。无效的输入是未定义的行为。 输出: 元素的符号。第一个字符必须是大写,其余 必须是小写。 输出示例: C 测试用例: Carbon -> C NiTROGen -> N Sodium -> Na Gold -> Au Silver -> Ag Tin -> Sn 元素比状态多得多,因此我希望为这些元素找到一个通用规则会更加困难。 这是代码高尔夫。最短的代码胜出!

18
在Perl打高尔夫球的秘诀?
您在Perl打高尔夫球有哪些一般秘诀?我正在寻找可以普遍用于解决高尔夫问题的想法,这些想法至少在某些方面是Perl特有的(例如,“删除评论”不是答案)。请为每个答案发布一个提示。
47 code-golf  tips  perl 

30
像素艺术,第1集:展示超级马里奥
这是我! 今天的任务很简单:编写一个程序或一个函数,在NES上的蓝色背景上显示来自Super Mario Bros的空闲的小Mario小精灵。 任何种类的输入都是有效的,只要它在屏幕/窗口/浏览器的任何位置显示那些12 * 16像素即可。 (编辑:如果您的语言不能做像素画,则可以放大显示的图像。您还可以输出ASCII画或HTML画,但是使用正确的颜色。) 图片(放大400%): 您必须使用以下颜色: 蓝色:#6B8CFF 红色:#B13425 绿色/棕色:#6A6B04 橙色:#E39D25 最短的程序(字符数)获胜! 存在标准漏洞(尤其是不允许网络连接),但是允许在程序中硬编码和显示图像文件。(使用此技巧的条目将单独排名) 开始了! 现任排行榜 仅使用代码的最短答案: Mathematica,141. https://codegolf.stackexchange.com/a/39916/10732(作者MartinBüttner) 击,158. https://codegolf.stackexchange.com/a/40002/10732(由hpsMouse) ... 使用某种硬编码图像的最短答案: HTML,102b。https://codegolf.stackexchange.com/a/39923/10732(由xem和NiettheDarkAbsol撰写) PHP,131b。https://codegolf.stackexchange.com/a/39926/10732(作者NiettheDarkAbsol) ...

30
将1、2、3、4、5、6、7、8和9转换为“一个”,“两个”,“三个”等
优胜者:Professorfish的猛击答案!整个9个字节!哇! 您可以继续提交答案,但是您将无法再获胜。供后代保留的原始帖子: 您的目标是将1-9之间的整数转换成它代表的单词。 您无需担心小数 用户将输入一个数字。假设他们永远不会输入10或更高的值 用户必须在某个时候键入数字,但是程序读取它的方法并不重要。它可以与stdin一起使用,读取文本文件等,但是用户必须在某个时候按键盘上的9按钮(例如) 它不区分大小写(例如,“一个”,“一个”,“ oNe”,“ OnE”等都是可以接受的) 允许HTTP / etc请求,但是服务器执行的所有请求代码都将计入最终代码的字节数(例如,如果我有C ++程序发出HTTP请求,则HTTP请求中使用的PHP代码将被计入) 任何可以编译和运行的东西都是可以接受的 该竞赛已于 2014年6月27日(发布后7天)结束。 这是一个代码高尔夫球,因此最短的代码获胜

15
生成堆栈溢出徽标
面临的挑战是生成类似于StackOverflow徽标的图像: 输出必须包含: 图片尺寸64 * 64或更大 灰色| __ | 异型底座 从底部向上弯曲的分段堆栈。这些片段将从灰色逐渐变为橙色,并向右转90度。段数应在5到7之间,最好是6。 注意:对于缺少颜色的ascii显示器,请使用'0'字符表示灰色,并使用'9'表示橙色。“ 1”到“ 8”将代表它们之间的阴影。 限制条件: 您必须生成图像。禁止加载图像或将其存储在代码/二进制文件中。 附加规则/信息: 图像不必与徽标相同,但是必须能够识别。 显示方法由您决定。将其保存到图像文件或显示在屏幕上都是可以接受的。 评审/获奖标准: 图像的准确性是首要条件 优雅是次要条件

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.