Questions tagged «popularity-contest»

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

22
创建一个对象,该对象的状态在分配时发生变化
我发现在Ruby中做到这一点非常奇怪(我不会马上说怎么做): obj = #code redacted print obj.state # Some value. LValue = obj print obj.state # Different value! 您的挑战是大致创建这种形式的代码。创建一个对象并将其分配给变量。它应该具有上面定义的某些已定义属性(或确定性,幂等方法),即使您仍使用旧标识符(上面)来引用它state,该对象在分配给新标识符(LValue上面)之后也会发生变化obj。 编辑以强调:state或等效项必须是幂等的,因此创建修改该值的访问器,或由于任何其他原因而导致在连续调用多次时返回不同的结果,不是有效的解决方案。或者,更简单地说,必须是更改状态的分配。 任何带有分配语言的语言都可以使用,尽管在某些语言中可能没有完全合法的解决方案。如果几天后没有其他人知道,我将发布我的Ruby答案,并滚动接受最高投票的答案。

1
混淆了我解决暂停问题的尝试
请注意:从本质上讲,此挑战的规范很难理解。它可能至少需要一门有关可计算性理论的新生课程,或者具有同等背景的阅读知识。此外,挑战本身也相当艰巨。要回答该问题,就需要为所选语言的某些子集编写一个完整的口译员,不仅如此,而且口译员也必须采用像奎奴纳这样的形式。如果您的答案不能满足所有要求,则可以肯定不符合规范。 您无需解决暂停问题(甚至部分解决)即可解决此挑战。但是,你几乎可以肯定做必要写(您使用写在上面解释同一种语言的语言,)一个解释,虽然它不一定是功能齐全。正是这个使这成为一个有趣的挑战。 我答应为符合规范的第一个答案奖励500点奖励,这将奖励给Jo King的BF答案。 挑战 Alan Turing关于停止问题无法解决的证明的粗略简化版本如下所示: 假设我已经编写了一个程序F来解决暂停程序。即,F将另一个程序的源代码作为输入,如果停止F(G)则返回,否则返回。1G0 但是,如果我给您我的程序,F那么您可以构建另一个程序H,它以我的程序H作为输入来运行。如果F(H)return,0则H返回0,但否则故意进入无限循环。这导致了一个悖论,我们必须得出结论,F毕竟这不能解决暂停问题。 您的任务是编写程序H,但要有所不同:我不会给您我的程序。相反,您的程序将接收我程序的源代码作为输入。那是: 您的程序将以源代码形式接收我的程序作为输入。(例如,作为文件还是作为命令行输入,详细信息取决于您。) 我的程序将使用与您的程序相同的语言编写,并且还将以源代码字符串的形式接受输入。 如果我的程序返回0给定当你的程序作为输入,你的程序应该停止(和返回0)时给予我的程序作为输入。(“重现0” 的确切含义取决于您。) 如果我的程序没有停止,或者返回除0给定程序作为输入时以外的其他任何内容,则程序应无限期运行。 唯一的困难就是,要使其变得更加困难,就必须遵守以下规则: 您不能使用任何内置函数exec或eval-type函数。 您不能使用任何“作弊”方法来获取自己程序的源代码。(例如,您不能说“将其保存在名为'程序'的文件中”,然后再包含open(program)在您的程序中。) 这意味着您的程序必须是某种疯狂的超级字符串,它们不仅可以以字符串的形式重现其自身的源代码,而且还能够正确地解析和解释其编写的语言。 为了使它的疯狂程度有所减轻,只允许使用所选语言的一部分(图灵完成)。因此,如果您的程序是用Python编写的,并且仅在我的程序仅包含ifs和while循环以及基本的字符串操作时才可以运行,那么只要您的程序也仅使用这些内容就可以了。(这意味着您不必担心实现所选语言的整个标准库!)但是,您的程序确实必须运行-您不能只编写自己的语言。 这是一场人气竞赛,因此得票最多的答案将获胜。但是,如上所述,要完全满足规范要求是一个严峻的挑战,因此,根据我的判断,我将对第一个回答给予500点奖励。 请注意:毫无疑问,鉴于我使用的确切措辞,您可以通过多种方式“应对”这一挑战。但是,我真的很希望能找到能使问题变得实质的答案。预期的挑战非常艰巨,但有可能实现,我真的希望看到真正的解决方案。我不会将悬赏奖励给在我的判断中感到作弊的答案。 注意:此挑战最初是作为人气竞赛发布的,但由于没有“客观的获胜标准”,于2016年关闭,为了将其重新开放,我将其更改为Code-Golf。但是,我发现,截至2018年1月,PPCG实际上并未禁止进行流行度竞赛(这是最新的元讨论),因此首先将其关闭是违反网站政策的。我知道popcons如今并不流行,但这是一个古老的挑战,它的性质使其确实不适用于代码高尔夫球计分系统。如果仍然有人强烈认为不应该这样做,那么让我们进行一次元讨论,然后再开始进行密切投票。最后,在有人花了最后一年尝试解决方案的机会之外,请放心,它在这项挑战中将具有竞争力,并且像在代码高尔夫球中一样值得悬赏版。

3
种一棵树,看着它长大
我们正在生长的树木有一些规则来定义它们的生长方式: 成长规则: 树木仅由树枝组成。 分支是由以下的符号的组合组成: _,\,|,/,和_ 一棵树从|地面(_)上的单个垂直分支/树干()开始: __________________|___________________ 树枝生长的食物来自光线。 光线在天空中的每个点以2的强度开始并向下直线传播。 每个分支都能吃掉一半的光,其余的则直达较低的分支。 因此,一个分支上没有其他分支的分支每个季节将获得1单位的清淡食物,一个分支上具有1个分支的分支每个季节将获得0.5单位的食物,并且通常情况下,分支上具有n个分支的分支将获得每个季节1 /(2 ^ n)单位食物。 在每个季节结束时,食物从树干开始一直向上移动并转化为新的分支和果实(应用以下规则,直到分支变成果实或剩余的食物少于1单位): 如果一个分支在一个季节结束时的食物少于1个单位,则该分支的所有食物都存储在该分支中,直到下一个季节。 如果分支的食物量大于或等于1个单位并且具有增长空间,则它会使用可用的生长方式(请参见下文)随机生长一个新分支,并存储下一季的剩余食物。 如果分支的食物数量大于等于1,无处生长,并且分支分支,则将食物平均分配到分支分支 如果分支机构的食物数量大于等于1,并且无处生长且没有分支分支,则该分支机构将变为果实(以表示O) 这是可能的增长配置 增长配置: _ \ | / _ _ \ | / \ | / _ | | | | | \ \ \ \ / / / / __ \_ |_ …

20
奥运会徽标-自由风格版
与此问题类似,您的任务是用最多1K的代码创建外观最好的徽标。 规则: 最多1K代码(含),没有外部数据。 投票最多的答案将获胜。 玩得开心!

9
反golfscript反golf:创建一个任务,其中GolfScript或J被您的(常规)lang超越。
您需要做三件事: 一个任务,声明牛逼。 用通常不用于打高尔夫球的语言A解决任务。 用通常用于打高尔夫球的语言B解决任务。不要试图夸大B来提高得分,而要想像B是您的竞争对手写的。 使用常识来定义typically used for golfing,尝试为其他用户带来最大的乐趣。 其他用户可能会提出更好B的建议(可能包括其他“古怪”语言)。 得分(length_in_bytes(B)+5)/(length_in_bytes(A)+5)越高,越好。(也许应该更改得分公式?。) 主要思想是发明一项任务,使通常在代码高尔夫中表现良好的语言遇到问题。在给定任务中,可能是常用语言的突然强项,也可能是某些golflang的突然弱项。 避免使用提及特定编程语言的任务,例如Input a string and execute it as a Scheme code。

3
模拟MOS 6502 CPU
这也受到了英特尔8086挑战的启发,但我认为6502挑战也很有趣。 挑战 我认为这将是一个有趣的结果。显然,这是朝着更先进的一面发展。面临的挑战是编写自己的6502 CPU仿真器。当然,这需要了解其指令集和编码格式。资源链接在此底部。6502是最容易仿真的现实世界处理器之一。就此挑战而言,如果您不想这样做,则无需担心循环时间安排-但这总是一个加号! 不要复制任何其他代码!当然,您当然可以偷看其他仿真器来帮助您理解,但不能复制和粘贴!:) 一旦代码运行成功,如果您愿意,您随时可以加倍努力,并将其转变为Apple II模拟器,或者NES,C64,VIC-20或从今天起使用的其他数十亿个旧的基于6502的系统。 测试模拟器 我已经编译了一个6502测试套件,并在其中找到了源代码:http : //code.google.com/p/hmc-6502/source/browse/trunk/emu/testvectors/AllSuiteA.asm 我的编译版本可以在这里下载:http : //rubbermallet.org/AllSuiteA.zip 将48 KB二进制文件以4000美元的价格加载到模拟器的内存空间中,从而在其下面留下16 KB的读写RAM。测试完成执行后,如果CPU通过,地址$ 0210中的值应为$ FF。您将知道程序计数器(PC)到达地址$ 45C0时测试已完成。 其他测试也可以在这里找到:http : //visual6502.org/wiki/index.php?title=6502TestPrograms 做一些更具互动性的事情 CPU工作后,您可能会想做的事情比盯着测试输出还要有趣!我为6502编译了增强型BASIC的ROM映像。它的大小为16 KB,因此您应该将其加载到仿真内存空间的$ C000中,重置虚拟6502,然后开始执行。 下载包含ehbasic.bin的该ZIP文件:http: //rubbermallet.org/ehbasic.zip EhBASIC处理输入/输出的方式非常简单。当想要向控制台写入字符时,它将字节写入存储器位置$ F001。因此,当您的模拟器看到6502尝试写入该位置时,只需使用printf(“%c”,value)将字符值打印到控制台即可;或其他您想要的。(这个挑战当然不仅限于C) 当它轮询从控制台输入的字符时,它非常相似。它将继续从$ F004的存储位置读取数据,在该位置应等待键盘上的下一个ASCII字符值被读取。如果没有更多的输入要读取,则应返回零值。 EhBASIC会在该位置轮询该值,直到它为非零为止,从而使其知道该字节是有效的键盘输入。这就是为什么如果没有更多的输入要读取,那么仿真器应该在那里返回零。在寻找输入时,EhBASIC会一直旋转直到下一个有效键。 如果在读取最后一个键值后仍未将该值清除为零,则它将导致重复该操作,就像您按住该键一样,因此请务必正确执行! 如果您的仿真器可以正常工作,那么在执行ROM映像时,控制台上将显示以下内容: 6502 EhBASIC [C]old/[W]arm ? 按C,然后按Enter,您应该看到: Memory size ? 31999 Bytes free Enhanced BASIC 2.22 …

7
人手不足的竞赛:操作系统之战[关闭]
我们都知道关于哪种操作系统是最佳操作系统的讨论是如何引起大量争论的。您现在的目标是为您最喜欢的操作系统提供更好的决定性“证明” ...啊,不,要好得多,为另一个操作系统不好提供决定性的“证明”。 任务:编写一个程序,进行一些计算,并且该程序在至少一个操作系统上正确运行,而在至少一个操作系统上错误运行。 程序应该至少进行一些计算,因此它必须读取一些简单的输入(最好是在标准输入上,或者如果需要的话,从文件中读取,但是滥用little endian / big endian不仅便宜,而且很明显),并根据输入提供一些输出。计算应该有意义且合理,例如解决现实生活或数学问题。 您应该指定两个操作系统,说明在哪个操作系统上可以正常工作,在哪个操作系统上不能正常工作。两种操作系统都应该是众所周知的,并且应该是大致相同的时间(因此,没有DOS 1.0与现代OS)。建议在扰流板标签中提供引起差异的原因的简短说明(尤其是如果您怀疑很多人不会意识到这一点)。 像这样 造成差异的原因必须是微妙的,所以#ifdef _WIN32请不要或相似!请记住,您的目标是“证明”该特定系统不好,因此人们不应(立即)发现您的把戏! 如果您的代码中有一个非常奇怪或非常不寻常的部分,则必须在注释中说明原因。当然,这种“合理性”可以是/将是一个大谎言。 得分: 这不是高尔夫!该代码应井井有条,并保持简单。请记住,您的目标是将错误隐藏在其中,以使人们不会怀疑它。代码越简单,可疑程度就越小。 获胜者将由投票决定。第一次有效提交后约10天后,得票最多。通常,应该对答案易于理解和理解的代码进行表决,这些答案应该易于阅读和理解,而漏洞却被很好地隐藏,即使被发现,也可以将其归因于错误而不是恶意。同样,如果该错误仅导致错误的结果,而不是仅导致程序崩溃或不执行任何操作,那么它的价值应该更高。 与往常一样,如果在任何主观标准上,我的答案都没有选择,则该答案应不超过最多投票者的答案低10%或1点。

30
聪明人的海市age楼
从前,我在阅读有关Quora的问题/答案 真的有没有计算机科学学位的程序员无法通过FizzBu​​zz测试 此代码是显而易见的答案 for i in range(1, 100): if i % 3 == 0 and i % 5 == 0: print "FizzBuzz" elif i % 3 == 0: print "Fizz" elif i % 5 == 0: print "Buzz" else: print i 当然,FizzBu​​zz已经被打死了,但这并不是这个问题的实质。您会在评论中看到有人提到该答案很不错,因为很容易添加额外条件,例如将“ Jazz”打印为4的倍数。(我不同意。扩展此方案需要O(2 ** n )代码行。) 您的挑战是编写由同行判断的最漂亮的FizzJazzBuzz版本。 选民需要考虑的一些事项: 干 除法/模运算的效率 …
29 popularity-contest  code-challenge  word  popularity-contest  string  grid  language-design  code-golf  source-layout  math  fastest-algorithm  assembly  code-golf  json  code-golf  arithmetic  array-manipulation  code-golf  ascii-art  code-golf  crossword  code-golf  string  restricted-complexity  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  decision-problem  balanced-string  syntax  code-golf  grid  puzzle-solver  hexagonal-grid  code-golf  math  number  sequence  code-golf  string  decision-problem  code-golf  cryptography  king-of-the-hill  code-challenge  fastest-code  code-golf  number  code-golf  code-golf  string  code-golf  cryptography  king-of-the-hill  java  code-golf  number-theory  base-conversion  code-golf  code-golf  array-manipulation  code-golf  array-manipulation  sorting  code-challenge  restricted-source  quine  code-golf  tips  python  king-of-the-hill  code-golf  source-layout  fractal  code-golf  tips  game  king-of-the-hill  path-finding  grid  code-golf  kolmogorov-complexity  natural-language  code-golf  tips  python  code-golf  number  arithmetic  sequence  array-manipulation  code-golf  number  combinatorics  random  integer-partitions  code-golf  string  code-golf  vim  comment  code-golf  combinatorics  counting  code-challenge  rosetta-stone  code-golf  combinatorics  sequence  subsequence  code-golf  code-challenge  restricted-source  primes  printable-ascii  popularity-contest  graphical-output  image-processing 

1
Code Golf的动画
当我看到敲打几个字符的代码高尔夫球条目,使代码变淡时,我去查看并排差异的编辑历史记录。观看和学习:) 面临的挑战是制作一个能够产生最漂亮的动画差异的程序。 输入将是任何有序的文本版本系列。 该程序可以用任何编程语言编写。 允许程序将自身限制为以某些特定的编程语言输入数据。 程序不应该调整到特定的输入数据;该程序应该是通用的,并且可以用于任何有序的文本版本系列。 对于输入中的每个版本,输出动画中必须有相应的时间显示版本的全文。您必须为版本阶段之间的差异设置动画,并且所有版本阶段都必须存在并在输出中按顺序排列。在这些关键帧上,必须显示版本大小,并且查看者应该理解这是他们当时看到的完整版本。 该程序可能不使用任何第三方代码来计算差异。 语法突出显示输出是可选的。如果程序为语法着色,则它可能不使用任何第三方代码来这样做。 输出将是动画GIF。 该程序可能使用第三方库来创作GIF。 这是一次人气竞赛,因此,按照此站点上的人气竞赛的定义,投票最多的条目将获胜。 这是一个简单的示例脚本,该脚本使用Python的ndiff和Pillow的基本动画GIF支持,并对每个添加和删除步骤进行动画处理: 我个人认为这是一项非常糟糕的工作。它不执行语法高亮显示,不尝试移动重新排列的代码块,不觉得有人正在现场编辑它,依此类推。它还打破了关于在关键帧上显示输入大小(以字节为单位)的规则,并且使用第三方库进行区分。有很大的改进空间! 希望这些受欢迎的条目也将成为codegolf.stackexchange.com社区有用的有趣工具。因此,如果程序易于他人使用和使用,将非常感激。

2
不熟练的代码竞赛:排序不太快[关闭]
任务 用您选择的语言编写一个程序,该程序从标准输入读取行直到EOF,然后按照ASCIIbetical顺序将它们写到标准输出,类似于sort命令行程序。Python中一个简短的,不可理解的示例是: import sys for line in sorted(sys.stdin): print(line.rstrip('\n')) 不足部分 与OS War相似,您的目标是通过使程序在竞争平台上故意慢得多地运行来证明您喜欢的平台“更好”。为了竞赛,“平台”由以下任意组合组成: 处理器 架构(x86,Alpha,ARM,MIPS,PowerPC等) 位数(64位,32位和16位) 大端与小端 操作系统 Windows,Linux,Mac OS等 同一操作系统的不同版本 语言实施 不同的编译器/解释器供应商(例如,MSVC ++与GCC) 同一编译器/解释器的不同版本 尽管您可以通过编写如下代码来满足要求: #ifndef _WIN32 Sleep(1000); #endif 这样的答案不应该被否决。目标是要微妙。理想情况下,您的代码应该看起来完全不依赖平台。如果你不具备任何#ifdef基于语句(或条件os.name或System.Environment.OSVersion或其他),他们应该有一个合理的理由(基于谎言,当然)。 包括在您的答案中 代码 您的“收藏夹”和“收藏夹”平台。 用于测试程序的输入。 对于相同的输入,每个平台上的运行时间。 关于程序为何在最不喜欢的平台上运行如此缓慢的描述。

21
利默里克你好世界[关闭]
您编写的押韵程序 试图赢得比赛 为了赢得比赛并投票 必须计算“ Hello World” 然后打印得很有礼貌 最受欢迎的诗歌将获胜。 要求是: 这首诗应该是5行,押韵AABBA 它可以打印任何内容,但输出应包含“ hello world”(大写/小写无关紧要,引号不包含在输出中) 大声读出符号。例如,上面的第四行显示为:它必须计算报价hello world quote 在您的代码下方发布代码,在另一个代码预览中,将代码的“朗读”版本发布,以消除特殊符号的歧义。 排除的诗有: 包括无效代码或可以在不更改韵母或功能的情况下安全删除的字符 使用评论作为押韵的方式(除非有充分的理由,否则除外) 使用与韵律词尾相同的符号。 如果出现平局,则输出一首诗的程序将获胜。如果仍然平局,则较短的程序将获胜。 新行不计算在内。空格,制表符和换行符不会大声朗读。例如,“你好,世界!” 会被大声读出“双引号你好逗号世界感叹号双引号”。

5
用蛇绘制图像
想象一个连续的二维路径,该路径只能向左,向右或笔直走,不能相交,并且必须填充矩形网格,例如图像中的像素网格。我们将这种路径称为蛇。 这个放大的示例显示了一条10×4网格中的蛇形路径,该路径以红色开头,并在每一步中将色相增加大约2%,直到变为紫色。(黑线仅用于强调其方向。) 目标 这场流行竞赛的目标是编写一种算法,尝试使用一条颜色连续少量变化的单一蛇来重新创建给定图像。 您的程序必须获取任何大小的彩色图像,以及介于0和1之间(包括0和1)的浮点值(公差)。 容差定义了在每个像素大小的步长中允许更改蛇色的最大数量。我们将两种RGB颜色之间的距离定义为当排列在RGB颜色立方体上时两个RGB点之间的欧几里得距离。然后将距离标准化,因此最大距离为1,最小距离为0。 色距伪代码:(假设所有输入值都是该范围内的整数[0, 255];输出已归一化。) function ColorDistance(r1, g1, b1, r2, g2, b2) d = sqrt((r2 - r1)^2 + (g2 - g1)^2 + (b2 - b1)^2) return d / (255 * sqrt(3)) 如果对蛇的当前颜色和另一种颜色调用此函数的结果大于给定的公差,则蛇可能不会变为该另一种颜色。 如果愿意,可以使用其他颜色距离功能。它必须是准确的并且有充分的文档证明,例如http://en.wikipedia.org/wiki/Color_difference中列出的内容。您还必须将其标准化为in [0, 1],即最大可能距离必须为1,最小必须为0。如果您使用其他距离度量,请在回答中告诉我们。 测试影像 当然,您应该发布输出图像(如果需要,甚至可以发布蛇的动画)。我建议使用不同的低公差(可能在0.005至0.03左右)发布各种此类图像。 (更大的巨浪) 获胜标准 如前所述,这是一次人气竞赛。投票最高的答案将获胜。提供对输入图像最准确,最美的“蛇形路径”描绘的答案应予以投票。 如果发现任何用户恶意提交的图像不是真正的蛇,则将永远取消其资格。 笔记 只能使用一条蛇形路径,并且它必须完全填充图像,而不能两次触摸同一像素。 蛇可能在图像的任何位置开始和结束。 蛇可能以任何颜色开始。 蛇必须留在图像的边界内。界限不是循环的。 蛇一次不能对角移动,也不能一次超过一个像素。

6
让我们画尼泊尔的国旗
尼泊尔的国旗(Wikipedia,Numberphile)看上去与其他任何国旗都大不相同。它还具有特定的绘图说明(包含在Wikipedia文章中)。我希望你们做一个能画出尼泊尔国旗的程序。 用户输入请求的标志高度(从100到10000像素),程序将输出尼泊尔的标志。您可以选择任何一种绘制标志的方式:从ASCII艺术到OpenGL的所有内容。 这是一场人气竞赛,因此获胜者将是2月1日获得最高投票的答案,因此不必担心代码长度,但是请记住,较短的代码可能会获得更多投票。 只有一个要求:不允许您使用Web资源。 玩得开心 :)

13
编写一个告诉您哪些行已删除的函数
编写一个包含五行的函数。 如果按原样运行该函数,则应返回0。 如果您删除了五行中的任何一行并运行该函数,它应该告诉您哪些行已被删除(例如,如果您删除最后一行,则应返回5)。 简洁,新颖和优雅都值得考虑。最高投票赞成的解决方案(经过合理的时间)获胜。

29
将短月份的名称转换为较长的月份[已结束]
挑战已经结束!恭喜Flonk! 我确定我会获得很好的成绩,但是上交Flonk的作品后,我的教授不相信这是我的,也无法理解为什么如此复杂...我失败了,我的妈妈使我脱离了Facebook和Minecraft一个月。我不明白 :( 感谢您提交的所有内容!这里有一些很好的答案。官方冠军是Flonk,得分为64。前五名是: Flonk,64岁(Haskell,数学高效!) DigitalTrauma,40岁(云,未来就在眼前) primo,38岁(Python和我个人最喜欢的-非常专业!) Sylwester,20岁(球拍,尽管Janember正在伸展!) ilmale,16(Lua中的高度优化算法) 以下是原始挑战。 请帮助我,这非常紧急!!!:( 我需要将月份名称的缩写版本转换为更长的表示形式(例如“ Dec”->“ December”),不区分大小写。现在我正在使用Java。该月的名称是一个String,我宁愿不先将其转换为Date对象。但是,任何语言都可以。 是否有捷径可寻??轻松一点,我是编程的新手! 这是一场代码巨魔人气竞赛(这是最好的!)。2014年4月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.