Questions tagged «underhanded»

该标签存在是出于历史原因。不欢迎以前在此标签下发布的类型的新挑战。


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


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

7
显然,P = NP [关闭]
SAT是确定布尔表达式是否可以设为真的问题。例如,可以通过设置A = TRUE来使(A)为真,但是(A &&!A)永远不会为真。已知此问题是NP完全的。请参阅布尔可满足性。 您的任务是编写一个在多项式时间内执行的SAT程序,但可能无法解决所有情况。 对于某些示例,它不是真正的多项式的原因可能是: 有一个边缘情况不明显,但运行时很差 在某些意外情况下,该算法实际上无法解决问题 您正在使用的编程语言的某些功能实际上具有比您合理预期的更长的运行时间 您的代码实际上所做的事情与看上去的完全不同 您可以使用所需的任何编程语言(或多种语言的组合)。您无需提供算法复杂性的正式证明,但至少应提供一个解释。 判断的主要标准应该是代码的说服力。 这是一次人气竞赛,因此一周内获得最高评分的答案将获胜。

30
实际上不是随机的随机脚本
在办公室里有个小玩笑,有人想要一个脚本,随意选择一个名字,然后说这个人会喝一杯。 我们称他们为约翰,杰夫,艾玛,史蒂夫和朱莉。 我认为制作一个看上去一眼便是随机的脚本却很有趣,但实际上却总是将输出作为同一个人(取决于您选择的人)。 一周后投票得票率最高 最终获胜者是.... 保罗·R(目前)158票。 这里的答案很好,如果其他人有其他想法尚未发布,请添加它们,我喜欢阅读它们。

30
为什么不结束?[关闭]
您的任务:编写一个显然应该终止的程序,但永远不会(在计算机崩溃的情况下)终止。使它看起来像应该执行的简单任务:加号,打印内容,...但是它只是陷入无限循环中。 尝试使您的程序非常清晰和简单,而实际上它会陷入无法预料的循环中。选民:评判他们“多么卑鄙”的答案! 这是一场人气竞赛:有创意!

7
开始大洋洲的革命
获奖者(决定14/09/14) Markuz的获奖答案(Python)-63票 kuroi neko(PHP)获得亚军 -55票 介绍 您正处在乔治·奥威尔(George Orwell)着的《十九点四十八点》(十九)中。 您是该党的程序员,并负责编写用于电视屏幕的程序。它应该输出亲方消息,并且您已经选择了下面任务1中显示的消息。但是,您最近开始鄙视该党,并且希望该计划引发一场革命。因此,您使程序说“ Down with Big Brother!”。您必须给自己时间逃脱,因为一旦人们意识到您的程序的作用,您就会遭受酷刑,因此您将其当作“定时炸弹”,在安全后会爆炸。 注意:这会不会引发一场革命,但你是在这样一个向你觉得它在党的仇恨狂潮将真正发挥作用。 任务 编写一个程序,其中: 在2014年9月14日之前,将始终轮流输出以下几行(即打印一行,等待10秒,打印下一行,等等。) War is Peace Freedom is Slavery Ignorance is Strength 2014年Down with Big Brother!9月14日之后将每10秒打印一次。 乍一看看起来只有1.。这样您就不会被党抓住了。 规则 当然不允许出现标准漏洞。 这是一个不为人知的挑战,因此主要目标是使任务2尽可能不显眼和隐蔽。 派对将查看所有使用的文件,因此您不能仅将秘密消息存储在文件中! 如果您的语言不支持查找日期或使日期变得非常困难,则可以让程序在运行240小时(10天)后执行任务2。 您应该在答案中包含代码和其工作原理的解释。 这是一次人气竞赛。 注意:这不是编写困难的程序。困难的部分应该是隐藏“革命”代码。该党会质疑不清楚您在做什么的路线,您必须对其进行解释。 示例-Python 3 注:显然,这个方案是这样太明显了。 from datetime import datetime from time import sleep …

18
该程序将所有自然数相加并产生-1/12的结果[关闭]
如您所知,有一个数学上的事实,即如果将所有自然数相加,最终将得到... -1/12 (请参阅Wikipedia此处)。 当然,这是一个非常奇怪的结果,不能仅通过在一个数字后面加上另一个数字而获得,而是一些特殊的数学技巧。 但是,您的任务是编写一个程序,该程序看起来像尝试将所有自然数相加,但是在您运行该程序时-它返回-1/12。 在伪代码中,它可能看起来像这样: result = 0; counter = 1; while(true) { result += counter; counter ++; } println(result); 您可以按照自己喜欢的任何方式执行此操作-您可以利用缓冲区溢出,在某些变量变得太大时处理抛出的错误,或者以某种巧妙的方式隐藏代码中的关键内容。唯一的条件是,代码在开始时看起来应该像试图加所有自然数一样,并且在运行时返回-1/12(以任何格式,可能是十进制,二进制,文本,ascii art等)。 该代码当然可以包含比上面显示的更多的内容,但是应该足够清楚,以愚弄读者。 这是人气竞赛-投票选出最聪明的主意!

3
乳蛋饼洛林[关闭]
由于这是丕日最近,我注意到一个数的挑战,询问您是否计算圆周率。 当然,洛林蛋饼也不是一个好蛋(如果您猜对了挑战,就可以申请+1的奖励分数¹)。因此,你的任务是写一个算法或方法是看起来像它的第一眼近似于皮,但保证不会收敛朝皮。 这是一个不足的挑战,因此请确保针对简单的测试用例(例如,使用10次算法迭代)将输出3.14...。这也是一个普及性挑战,因此请不要echo(pi)直言不讳地说IEEE 754浮点向上或向下舍入一些数字。 优胜者得到洛林蛋饼。 ¹警告:实际上不是奖金分数。索取分数,即表示您同意在2016年Pi Day之前给我烤馅饼 ² 警告:洛林乳蛋饼被用作隐喻,将您的答案标记为“已接受”

13
“反驳”费马的最后定理
用您选择的语言编写一个程序,该程序似乎可以成功找到Fermat的Last Theorem的反例。也就是说,找到整数a,b,c > 0和n > 2使得a n + b n = c n。 当然,除非安德鲁·威尔斯(Andrew Wiles)的证明有缺陷,否则您无法真正做到。我的意思是假的,依靠 整数溢出 浮点舍入误差 未定义的行为 具有加法,求幂或等式的异常定义的数据类型 编译器/解释器错误 或类似的规定。 你可以硬编码部分或全部变量a,b,c,或n,或做循环寻找他们喜欢的for a = 1 to MAX。 这不是代码高尔夫;这是寻找聪明而精妙的解决方案的竞赛。

30
产生意外词[关闭]
目的是编写会意外产生单词的程序(程序看起来不会产生单词)。 示例(JavaScript): alert(([0][1]+"").slice(4,8)) 警报“很好” -jsfiddle。 说明: 1. [0][1]返回undefined,因为数组中只有一个元素[0] 。2.添加空字符串将转换undefined为字符串“ undefined” 。3. slice(4,8)输出第5至8个字符undefined 这是不受欢迎的人气竞赛。

30
挑战:写一段自己退出的代码[关闭]
我正在搜索(是吗?)寻找立即退出的一段代码-这绝对是一种非常规的方式。 这并不意味着:System.exit((int) 'A');(Java)。 这可能意味着: #!/usr/bin/env python3 # NOTE: This kills ALL RUNNING Python processes. Be careful! def exit(): import os os.system("killall python3") # Windows addon os.system("taskkill /im python.exe /f") exit() 最受好评的答案胜出!所有语言,所有体系结构。 编辑:通过抛出异常退出将不再被接受!

30
在源代码中删除空白行,这会导致意外的功能。
编写一个脚本,该脚本在程序逻辑流程中出现空白行时会正常工作,但在删除该行时会中断或导致意外行为。 避免出现标准漏洞和愚蠢的答案。您的程序应该做一些“有用的事情”,即使它所做的只是添加一些整数。 从多行字符串中删除空行不算在内,除非该多行字符串的预期输出在技术上不应该更改(即:如果要删除所有与匹配的空行^$)。 也不允许使用空白愚蠢;不要用回车符,制表符,空格等做奇怪的事情。

9
破坏编码标准
软件公司实施了各种编码标准,其目的是提高代码可靠性,可移植性,最重要的是提高不同开发人员共同编写的代码的可读性。 两个著名的例子是MISRA C和为JSF项目开发的C ++标准。 在仔细指定单词“ must”,“ shall”,“ should”,“ might”等之后,这些通常采用以下格式: 例: 规则50:不应测试浮点变量的完全相等或不相等。 原理:由于浮点数容易出现舍入和截断错误,因此即使达到预期,也可能无法实现精确的相等性。 这些编码标准通常会限制从编译器的角度来看是合法的代码,但这些代码很危险或不可读,因此被认为“有害”。 现在让我们滥用它! 您被接受为公司小型标准化委员会的成员,该委员会旨在设计公司每个开发人员都必须使用的新编码标准。在其他人不知道的情况下,您秘密地在一个险恶的组织中工作,并且以破坏公司为己任。您必须为编码标准提出一个或多个条目,这以后会阻碍开发人员。但是,您必须小心,不要立即使其变得明显,否则您可能会冒不被标准接受的风险。 换句话说,您必须在编码标准中引入看起来合法的规则,并且很有可能被委员会其他成员接受。之后,项目启动和无数的工时投入的代码,你应该能够滥用这些规则(例如,通过一个技术性,或者通过非常字面解释),以将其他正常且高质量的代码标记为违反标准。因此,他们必须付出很大的努力来重新设计它,而规则会从现在开始阻碍它们。但是,由于规则在相当长的一段时间内一直处于活动状态,纯净的势头将使这些角色继续存在,并且存在重大冲突出于不同管理层之间利益关系的考虑,其他经理可能会保持规则有效(他们承认错误会很愚蠢!),从而阻碍了公司的发展!哇哈哈哈哈哈! 计分 从第一个有效条目开始大约2周后,获得最高票数的答案。我有一个很好的答案的主意,但几天后我将只发布它,因为其他人可能也有相同的主意,并且我不想从他们的快乐中抢走。当然,无论分数如何,我自己的答案都不会被接受。 鼓励选民根据漏洞的隐藏程度以及对开发人员的沮丧程度为答案打分。 条款和规则 一条或多条规则必须看起来专业,就像上面的示例一样 规则看起来应该是真实的(因此“诸如所有变量必须至少包含一个下划线,一个大写字母,一个小写字母和两个数字之类的东西”是不可接受的。它们确实会阻碍开发人员,但很可能不会被开发人员接受。委员会),如果他们的优点不是立即显而易见的,则应给出充分的理由。 以后您应该能够找到一种使用/滥用规则破坏开发人员的方法。您可能会滥用其他规则中的任何歧义,或者您可能会使用多个规则,这些规则本身无害,但一旦组合起来便是有害的! 您应该在文章结尾处在剧透标签中发布有关如何滥用规则的说明 使用的语言不能是深奥的语言。必须选择一种在实际项目中广泛使用的语言,因此首选具有类似C语法的语言(而不是像Golfscript这样的语言)。

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.