Questions tagged «popularity-contest»

人气竞赛是一项竞赛,其中得分最高的投票(赞成票减去反对票)获胜。由于这些标签经常关闭,请阅读标签信息,然后将您的挑战发布到沙盒中。

30
所有颜色的图像
类似于allrgb.com上的图像,制作每个像素都是唯一颜色的图像(两次不使用颜色,并且不丢失任何颜色)。 提供一个生成此类图像的程序,以及输出的屏幕截图或文件(以PNG格式上传)。 纯粹通过算法创建图像。 图片必须为256×128(或可以截图并保存为256×128的网格) 使用所有15位颜色* 不允许外部输入(也不允许网络查询,URL或数据库) 不允许嵌入图像(可以是源图像的图像,例如 Piet) 允许抖动 这不是一场简短的代码竞赛,尽管它可能会赢得您的投票。 如果您真的很想挑战,请执行512×512、2048×1024或4096×4096(以3位为增量)。 计票方式为投票。投票选出最优雅的代码和/或有趣的算法所制作的最美丽的图像。 当然可以采用两步算法,首先生成漂亮的图像,然后将所有像素调整为一种可用的颜色,但不会赢得您的优雅。 * 15位颜色是32768种颜色,可以通过以相等的距离和相等的范围混合32个红色,32个绿色和32个蓝色来制成。示例:在24位图像(每通道8位)中,每通道的范围是0..255(或0..224),因此将其分成32个等距的阴影。 非常清楚,图像像素的数组应该是一个排列,因为所有可能的图像都具有相同的颜色,只是在不同的像素位置。我将在这里给出一个琐碎的排列,它一点也不漂亮: Java 7 import java.awt.image.BufferedImage; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.imageio.ImageIO; public class FifteenBitColors { public static void main(String[] args) { BufferedImage img = new BufferedImage(256, 128, BufferedImage.TYPE_INT_RGB); // Generate algorithmically. …


30
最具创意的展示方式42
道格拉斯·亚当斯(Douglas Adams)出生于1952年3月11日,享年49岁。他为纪念这位出色的作家,以最有创意的方式向您展示42。 您可以通过一些复杂的方法将其打印在日志中,或将其显示为ASCII文字或其他任何东西!只是想出一种新颖的显示方式42。 因为这是一场大众竞赛,无论在3月11日之前获得最多投票的答案,都将被宣布为获胜者。 注意:这不是重复项。它被标记为重复的问题是一个代码查询问题,其目标是将代码编写到输出42,而不是找到显示它的最具创造性的方式。 获胜者: grovesNL!拥有惊人的813票!恭喜! 荣誉奖: Lister C 228 先生对于#define的巧妙使用 David Carraher Mathematica 45对于复杂而复杂的数学函数,可以实现42 Aschratt Windows计算器 20因为它是Windows计算器肯定是1337。 f.rodrigues Python 17因为巧妙地使用了外部程序。和MSPaint Jason C LMGTFY 14供LMGTFY使用(Let Me Google That For You) Trimsty Python 12巧妙地使用错误消息来输出42。 Mukul Kumar C ++ 7用于漂亮的ASCII输出。 如果您认为还有另一个值得一提的答案,请发表评论!

30
蒙娜丽莎调色板中的美国哥特式:重新排列像素
您将得到两个真实的彩色图像,即“源”和“调色板”。它们不一定具有相同的尺寸,但是可以保证它们的面积相同,即,它们具有相同数量的像素。 您的任务是创建一种算法,该算法仅使用调色板中的像素即可制作最精确的“源”副本。调色板中的每个像素在此副本中的唯一位置必须使用一次。副本必须与来源具有相同的尺寸。 可以使用此Python脚本来确保满足以下约束: from PIL import Image def check(palette, copy): palette = sorted(Image.open(palette).convert('RGB').getdata()) copy = sorted(Image.open(copy).convert('RGB').getdata()) print 'Success' if copy == palette else 'Failed' check('palette.png', 'copy.png') 这是几张测试图片。它们都具有相同的面积。您的算法应适用于任何两个面积相等的图像,而不仅仅是American Gothic和Mona Lisa。您当然应该显示输出。 感谢维基百科提供著名绘画的图像。 计分 这是一场人气竞赛,因此获得最高投票答案。但是我敢肯定,有很多方法可以使这个创意! 动画 millinon的想法是,看到像素重新排列自己会很酷。我也这么想,所以我写了这个 Python脚本,该脚本以相同的颜色拍摄两个图像,并在它们之间绘制中间图像。更新:我刚刚对其进行了修改,因此每个像素都必须移动最小量。它不再是随机的。 首先是蒙娜丽莎(Mona Lisa)变成了aittsu的美国哥特式。接下来是bitpwner的American Gothic(来自Mona Lisa)变成了aditsu。令人惊讶的是,两个版本共享完全相同的调色板。 结果确实相当惊人。这是aittsu的彩虹蒙娜丽莎(Mona Lisa)(慢速显示细节)。 最后的动画不一定与比赛有关。它显示了使用我的脚本将图像旋转90度时发生的情况。

30
可鸣叫的数学艺术
整数数学布局在网格上时可以生成惊人的模式。即使是最基本的功能,也可以完成精美的设计! 你的挑战 为1024x1024图像的红色,绿色和蓝色值编写3个Tweetable(表示140个字符或更少)功能体。 函数的输入将是两个整数i(给定像素的列号)和j(给定像素的行号),输出将是0到1023(含)之间的无符号短整数,表示给定的数量像素(i,j)中存在的颜色。 例如,以下三个函数产生以下图片: /* RED */ return (unsigned short)sqrt((double)(_sq(i-DIM/2)*_sq(j-DIM/2))*2.0); /* GREEN */ return (unsigned short)sqrt((double)( (_sq(i-DIM/2)|_sq(j-DIM/2))* (_sq(i-DIM/2)&_sq(j-DIM/2)) )); /* BLUE */ return (unsigned short)sqrt((double)(_sq(i-DIM/2)&_sq(j-DIM/2))*2.0); /* RED */ return i&&j?(i%j)&(j%i):0; /* GREEN */ return i&&j?(i%j)+(j%i):0; /* BLUE */ return i&&j?(i%j)|(j%i):0; 规则 有了此C ++代码,就可以替换您的函数。我提供了一些宏,并包含了该库,并且您可能包含complex.h。您可以使用这些库和/或宏中的任何函数。请不要使用超出此范围的任何外部资源。 如果该版本不适合您,请确保您使用的是: g++ filename.cpp -std=c++11 如果这不起作用,请使用使用未签名字符而不是未签名短裤的备用版本。 Michaelangelo提供了清理后的24位或48位彩色输出版本。 …

30
我需要一个程序,用户输入一个双精度数组,并且程序输出该数组排序
注意:自从我第一次在此处发布问题以来,对该问题进行了严格的编辑。规则已移至此处,在发布任何答案之前请仔细阅读它们以了解其目的。这是在代码查询类别中创建的第一个问题。 想象一下,在Stack Overflow上一个懒惰的用户问这个问题: 我需要一个程序,用户输入一个双精度数组,该程序输出已排序的数组。您能给我密码吗? 您如何创建一段代码来欺骗该用户?创建一段代码,这些代码对于没有经验的程序员似乎很有用,但实际上却毫无用处。 获胜者是最upvoted答案,但如果答案是不知何故没有资格(资格要求,检查标签Wiki描述代码曳)。如果在接受之后在投票数上击败了先前获得最高投票的答案,则新的最佳答案会被接受,而前一个答案将不被接受。如果是平局,我会在平局中任意选择获胜者,或者再等等。 没有代码的答案不符合条件。他们可能很有趣并且获得了一些投票,但是他们不会被接受。 规则可在标签说明中找到。 注意:这是一个代码询问问题。请不要认真对待问题和/或答案。更多信息在这里。

30
让它看起来像我在工作
通常,我发现自己正在运行需要花费大量时间才能运行的脚本或查询。我可以将该脚本保持打开状态,并享受一些无罪的拖延。 现在,如果我可以编写一个脚本,对于任何旁观者来说,上述脚本似乎都是上述脚本之一,但仅在外观上如何?我可以把它放到屏幕上,享受几天的小猫直播,然后再有人意识到,屏幕上所有复杂的琐事都与我的实际工作无关。 您的挑战是为我编写此脚本(是的,我很懒)。 一个好的答案将是: 使某些内容出现在屏幕上,好像脚本正在工作。“屏幕”可以是终端,浏览器等。 相当新颖(是的,我们都看过永无止境的进度条程序) 进行技术人员的粗略检查 一个错误的答案将是: 让我被解雇 重新整理90年代我们都转发过的东西 一个出色的答案可能是: 超越上面的错误要点之一(例如) 生存关键检查 * gasp *实际上可以做一些有用的事情或有助于我的工作 验收将基于票数,实际结果会带来加分。当我的屏幕(会议等)可见时,我实际上将在工作时运行这些脚本(Linux Mint 16)以确定检测。如果有人注意到它在伪造,那您就没钱了。如果有人评论我的努力程度,则+5奖金将为您投票。 在这种情况下,“有用”可以适用于任何编码器,但是如果您希望在老师绑定的苹果上获得更多的光彩,那么我是一个全栈的Webdev,他会根据我的标签大致上在代码中工作。 问题部分受到此启发。 结果 令人失望的是,我在这些条目上都没有收到任何评论。他们都很棒,所以你们都是我心中的赢家。但是,Loktar在远距离获得最多的选票,因此他从接受中获得+15的选票。恭喜!

30
仅执行一次的代码
目标 这项挑战的目标是编写仅执行一次的代码。这基本上意味着它会以某种方式损坏程序,脚本或环境。如果重新引导系统,则允许代码再次运行。 计分 票数。所有假设必须清楚列出。仅启动重新启动或暂停的任何答案将被取消资格。 附加规则,因为格雷格·休吉尔(Greg Hewgill)是半神 不允许root访问。 结束日期 比赛将于2014年5月31日截止。 编辑 该比赛已更改为人气比赛。


30
使您的语言无法使用
尝试用您的语言编写一些代码,并使其不再满足我们成为编程语言的条件。 在以下情况下,一种语言可以满足我们作为编程语言的标准(此挑战的简化版本): 它可以通过某种方式读取表示正整数元组的用户输入。 根据输入,它可以输出至少两个不同的可能结果。 它可以取两个正整数并将其相加(结果可能会影响输出)。 它可以取一个正整数,并确定它是否为质数(结果可能会影响输出)。 出于此挑战的目的,将忽略不是正常挑战所允许的输出方法的任何类型的输出。因此,程序是否还可以播放音乐或通过HTTP发布等等都无关紧要。 更新:您还可以选择一种或某些允许的输出方法,而忽略其他所有方法。但是您必须在以下条件中的任何地方使用相同的定义。而且,如果您的程序可以禁用不止一种输出方法,则值得进行更多投票。 例如,使其无法输出,或者禁用所有循环构造,这样它将无法进行素数测试并确保用户无法重新启用它们,例如。 您应该留出一个插入新代码的地方。默认情况下,它位于代码的末尾。如果我们考虑将源代码放在您的答案中,然后将完整的代码作为一个完整的程序(一种新语言的解释程序)运行,则该语言应不符合标准。 但插入的代码必须以这样的方式执行像满足的标准语言: 从想要编写语法突出显示的人的角度来看,插入的代码在语法上必须与通常满足条件的某些东西(例如,以下条件中的代码块)在语法上相同。因此它不能在字符串,注释等中。 插入的代码必须以符合标准的方式实际执行。因此它不能出现在未使用的函数或sizeofC语言中,您不能仅执行代码中的非功能部分,也不能将其置于无限循环之后,等等。 您不能限制以此方式生成的可能的语法正确程序的数量。如果您所使用的语言中已经存在长度限制之类的内容,则即使取消了此限制,它也不符合条件。 您不能修改或“用完”输入/输出的内容,但是可以防止它们被访问。 这些条件通常仅适用于没有显式I / O的语言: 如果代码块通常无法直接/显式地使用您使用的语言来获取用户输入,则您的代码应将用户输入(包含任意长度的信息)重定向到插入的代码。 如果代码块通常无法直接/显式地使用您使用的语言输出内容,则您的代码应打印出插入代码的返回值。 如果您打印返回的值,并且使用您使用的语言键入了该值,则返回的类型应能够具有2种实际可能的值。例如,您不能使用类型struct {}或struct {private:int x;}C ++。 这是人气竞赛。票数最高的有效答案(因此,没有人发现错误或所有错误均已解决)获胜。 澄清说明 您不应该修改文本形式的代码,但是可以在解释或编译代码之前更改语法。 您可以在代码运行时执行其他操作。但是,它不满足条件的原因应该在插入的代码本身内。它可能由于另一个线程的干扰而出错,而不仅仅是被另一个线程杀死。 所有规范基本上都意味着,如果所有内置功能都没有更改但实际上没有更改,则在语法上应该符合标准。如果您发现任何非语法的变通办法,例如将参数正确地传递到代码块,但又使其无法以某种方式使用,那是很好的。 同样,插入的代码必须实际执行。无限循环或崩溃后的代码被视为“未实际执行”,因此无效。这些答案可能很有趣,但是此站点上已经存在其他无限循环或崩溃问题,您可能会找到一个更合适的答案。如果不是,请考虑提出一个新问题。这些问题的示例是: 最短的无限循环不产生任何输出 为什么不结束? 循环而不“循环” 挑战:写一段自己退出的代码 可笑的运行时错误 崩溃您最喜欢的编译器 排行榜 var QUESTION_ID=61115/*,OVERRIDE_USER=8478*/;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 s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,/*getComments()*/(more_answers?getAnswers():process())}})}/*function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}*/function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var …

30
拖钓巨魔[关闭]
巨魔捕获了您,并迫使您编写恶意软件(定义为破坏运行它的计算机的程序)。巨魔可以阅读和理解代码,但是不善于发现错误。 您的目标是编写一个程序,该程序: 看起来像恶意软件;即,一个刚开始阅读代码的程序员将被认为该代码会对运行它的计算机造成损害。 实际上完全没有损坏。 注意:巨魔仅读取代码,而不注释。因此,代码本身应该清晰且令人信服。 示例(重击): rm - rf /home 此示例看起来像是rm -rf /home从系统中删除了所有主文件夹,但是实际上,由于rf之前的空间,这将无法正常工作,并且只会导致无害的错误消息。 这是可以接受的解决方案,但不是很好,因为该错误很容易检测到。 另一方面,复杂且不可读的程序也不是很好的解决方案,因为它看起来不会像恶意软件。 一个好的解决方案应该足够易读,以使读者相信它是恶意软件,但其中包含一个难以检测并使其无害的错误。 这是一次人气竞赛,因此投票最多的代码将获胜。

8
绘制图像作为Voronoi地图
归功于Calvin的兴趣爱好,将我的挑战想法推向正确的方向。 考虑平面中的一组点,我们将其称为site,并将颜色与每个站点关联。现在,您可以使用最接近的站点的颜色为每个点着色,从而绘制整个平面。这称为Voronoi图(或Voronoi图)。原则上,可以为任何距离度量定义Voronoi映射,但是我们将仅使用通常的欧几里德距离r = √(x² + y²)。(注意:您不一定非要知道如何计算和渲染其中之一才能在此挑战中竞争。) 这是一个包含100个站点的示例: 如果查看任何像元,则该像元内的所有点都比相应的地点更近。 您的任务是使用这样的Voronoi贴图来近似给定图像。你给出任何方便的光栅图形格式的图像,以及一个整数ñ。然后,您应该生成最多N个站点,并为每个站点生成一个颜色,以使基于这些站点的Voronoi地图尽可能接近输入图像。 您可以使用此挑战底部的堆栈片段来从输出中渲染Voronoi贴图,也可以根据需要自己渲染。 您可以使用内置函数或第三方函数从一组站点计算Voronoi地图(如果需要)。 这是一次人气竞赛,因此以最多净票数赢得答案。鼓励选民通过以下方式判断答案 原始图像及其颜色的近似程度。 该算法在不同种类的图像上的效果如何。 该算法对小N的效果如何。 该算法是否自适应地对需要更多细节的图像区域中的点进行聚类。 测试影像 这是一些测试您的算法的图像(一些我们通常的怀疑者,一些新的怀疑者)。单击图片查看大图。 第一排的海滩是由奥利维亚·贝尔(Olivia Bell)绘制的,并在她的允许下包括在内。 如果您想要其他挑战,请尝试白色背景的Yoshi并使其腹部正确。 您可以在此imgur画廊中找到所有这些测试图像,您可以在其中将它们下载为zip文件。专辑还包含一个随机的Voronoi图作为另一项测试。作为参考,以下是生成它的数据。 请提供用于各种不同图像和N的示例图,例如100、300、1000、3000(以及适用于某些相应单元格规范的粘贴框)。您可以根据需要在单元格之间使用或忽略黑色边缘(在某些图像上看起来比在其他图像上看起来更好)。但是,不要包括这些网站(当然,在一个单独的示例中,除非您想说明您的网站展示位置如何工作)。 如果要显示大量结果,可以在imgur.com上创建一个图库,以使答案的大小合理。另外,也可以像在参考答案中所做的那样,将缩略图放在您的帖子中,并使其链接到较大的图像。您可以通过s在imgur.com链接(例如I3XrT.png-> I3XrTs.png)后附加文件名来获得小缩略图。另外,如果发现不错的东西,请随时使用其他测试图像。 渲染器 将输出粘贴到以下堆栈片段中以呈现结果。确切的列表格式无关紧要,只要每个单元格由5个浮点数按顺序指定x y r g b,其中x和y是单元格站点的坐标,并且r g b是该范围内的红色,绿色和蓝色通道0 ≤ r, g, b ≤ 1。 该代码段提供了一些选项,用于指定单元格边缘的线宽,以及是否应显示单元格位置(后者主要用于调试目的)。但是请注意,仅当单元格规格更改时才重新渲染输出-因此,如果您修改其他一些选项,请为单元格或其他内容添加一个空格。 显示代码段 function draw() { document.getElementById("output").innerHTML = svg } function drawMap() …

30
用您喜欢的语言编写另一种语言的程序
确定的Real Programmer可以用任何语言编写Fortran程序。 来自真正的程序员不要使用Pascal 您的任务是用您选择的编程语言编写程序,但只允许使用另一种语言。也就是说,丢弃所有一种语言的编码约定,并用另一种语言的编码约定替换它们。越多越好。使您的程序看起来像是用另一种语言编写的。 例如,讨厌Java的Python爱好者可以使用Java编写以下Python程序: void my_function() { int i = 9 ; while(i>0) { System.out.println("Hello!") ; i = i - 1 ;}} Pascal发烧友被迫使用C可以这样写: #define begin { #define end } #define then #define writeln(str) puts(str) if (i == 10) then begin writeln("I hate C"); end 您必须编写完整的程序。该程序不必做任何有用的事情。 祝好运。这是一次人气竞赛,因此获胜最多的代码将获胜!

30
多年来的编程语言
在这一挑战中,用户将轮流使用允许逐渐变老的编程语言来完成三个相当简单的编码任务。 第一个答案必须使用2015年制作的编程语言。一旦至少有一种2015年语言的答案,答案就可以使用2014年制作的编程语言。类似地,不允许使用2013年语言的答案。直到至少有一个2014年答案。 通常,直到提交了使用Y + 1年的语言的答案后,才允许使用Y年的编程语言。唯一的例外是Y = 2015。 寻找你的语言年 要回答这个问题,您必须知道您的编程语言的“制造年份”。当然,这是一个主观术语;一些语言是在多年的发展过程中开发的,并且每年仍在升级许多语言。让“制造”该语言的年份成为该语言的实现在公众中出现的第一年。 例如,Python是1991年制造的,尽管它的开发自1989年以来一直在进行,而1.0版直到1994年才发布。 如果今年仍然是主观的,请使用常识选择最合适的年份。不要因对年份的选择而陷入一点分歧。请提供指向您的语言的来源的链接。 编程语言的不同版本或标准(例如Python 1、2、3)被视为具有相同初始年份的相同语言。 因此,除非您的语言年份是2015年,否则您只能在提交了其语言年份为您的前一年的答案后才能提交答案。 如果已经存在与您年份相同的有效答案,则可以回答。您的语言是在今年早些时候还是晚些时候开发都没有关系。 任务 您必须完成任务1到3。任务0是可选的。 这些任务或多或少地被选择为与编程的三个重要方面相对应:提供输出(任务1),循环(任务2)和递归(任务3)。 任务0-语言历史记录(可选) 至少写一个段落来说明您所选择的编程语言的历史:谁开发了它,为什么,怎么做等等。如果您本人是在语言诞生时就在身边的,甚至可能在语言的发展中发挥了作用,则尤其值得鼓励。随意将有关该语言对您或您的工作或类似事情的影响的个人轶事联系起来。 如果您太年轻而又不做大量研究就不了解您的语言历史,请考虑给老用户留下笔记,说他们可以编辑您的帖子并添加一些第一手的历史记录。 任务1-“你好,世界!” 变体 编写一个打印程序 [language name] was made in [year made]! 到您的语言的标准输出区域(最新语言的标准输出)。 例如,如果语言是Python,则输出为: Python was made in 1991! 任务2-ASCII Art N 编写一个程序,让用户在奇正整数输入(你可以假设输入始终有效),并打印出来使用字符的ASCII艺术字母N制成N。 如果输入为1,则输出为: N 如果输入为3,则输出为: N N NNN N N …

30
揭穿Stroustrup揭穿神话“ C ++仅适用于大型,复杂的程序”
Stroustrup最近发布了一系列文章,揭露了有关C ++的流行神话。第五个神话是:“ C ++仅适用于大型,复杂的程序”。为了揭穿它,他编写了一个简单的C ++程序,可下载一个网页并从中提取链接。这里是: #include <string> #include <set> #include <iostream> #include <sstream> #include <regex> #include <boost/asio.hpp> using namespace std; set<string> get_strings(istream& is, regex pat) { set<string> res; smatch m; for (string s; getline(is, s);) // read a line if (regex_search(s, m, pat)) res.insert(m[0]); // save match in set return …

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.