Questions tagged «code-challenge»

代码挑战赛是一种创造性的竞赛,可以用客观的获胜标准来解决编程难题,而其他得分标记(例如,代码高尔夫)则无法涵盖这些目标。

2
策划策略
我只能找到Mastermind的代码挑战,所以这是我想承担的代码挑战版本。 普通的Mastermind游戏的最佳策略MM(4,6)由Koyama和Lai于1993年发现,平均猜测数= 5625/1296〜4.34。MM(5,8)仍未解决,但估计平均猜测数约为5.5。 您的任务是创建一个MM(5,8)策略,该策略适用于5个孔和8种颜色,涵盖所有pow(8,5) = 32768可能的不同解决方案。显然,它不一定是最佳选择。您有两种选择: 发布确定性程序以生成策略。该程序必须在Windows 7,Mac OS X或Linux上可编译/运行,且没有任何其他非自由软件。 在Internet上的某个位置发布您的策略(以及您的StackExchange名称)并在此处发布URL。 在这两种情况下,请在答案的标题中注明分数(见下文)。 必须根据以下语法对策略进行编码: strategy : guessing-strategy | known-solution-strategy guessing-strategy : '{' guess ':' branches '}' known-solution-strategy : guess guess : color color color color color color : 'A'..'H' branches : '{' branch (',' branch)* '}' branch : reply ':' strategy …

5
2048机器人挑战赛
我们一直在克隆 2048,分析 2048,但是为什么我们还没有播放呢?编写一个555字节的javascript代码段以自动播放2048,一个小时后的最佳得分将起作用(请参阅下面的得分)。 设定: 转到2048并运行: a = new GameManager(4, KeyboardInputManager, HTMLActuator, LocalStorageManager); a 是控制游戏的对象。 规则: 设置完成后,您可以从控制台运行555字节的JavaScript,以控制游戏。您可以在此处找到游戏的源代码(包括注释)。 它只能做用户可能做的事情: a.move(n) 在四个方向中的任何一个上触发按键动作。 0:向上,1:向右,2:向下,3:向左 a.restart() 重新启动游戏。游戏中间允许重新启动。 有关游戏状态的信息可以在中找到a.grid.cells。该信息是只读的 允许挂钩任何功能,不允许以任何方式更改其行为(或更改任何其他数据) 每250ms只允许移动一次 例 只是一个非常简单的示例。不带注释并输入181个字节。 //bind into new tile function and change m(ove) variable when a tile was moved b = a.addRandomTile.bind(a); m = !1; a.addRandomTile = function() …

3
地牢建筑套装
小时候,我玩了Intellivision游戏Advanced Dungeons and Dragons:Tarmin of Tarmin。3D图形使您以令人震惊的真实感进入第一人称视角: 但是后来我得到了一架C-64。然后,我可以通过在屏幕上游标,使用Ctrl键和数字设置颜色以及将符号放置在所需的任何位置上来绘制40x25字符网格(为什么bash不让我这样做呢?)。字符集具有三角形成分和实心块成分。因此,我能够推理出如何通过该媒介在网格中生成一个人的视角的渲染。 我在本周的螺旋装订笔记本纸中找到了将近三十年的规格,关于“地下城建筑套装”: (更新:细心的读者会注意到,这在倾斜的部分上并不能完全解决。下面提供了更正的数字。) 尽管Tarmin of Tarmin是在网格上播放的,但墙壁仅存在于网格正方形的边缘。了解了字节是多少之后,我意识到,如果我用字节来制作地图,那么地图上的每个方块的每个边缘可能都有四个可能的状态: 通畅 壁 门 还有吗? 我从来没有去写它(直到昨晚)。我认为其他人尝试可能会很有趣。 因此,您的任务是实现一个基于字符模式的迷宫渲染器,该渲染器实现我的(更正!)规范...但是使用2013年的技术。 输入项 由于规范未定义门的渲染,因此我们仅假设唯一的选择是壁挂式和非壁挂式。为了简单起见,您的输入是一个由几行字符串组成的映射,如下所示: WN.. .N.. .N.. .N.. .N.E W... .... .... ..S. ...E W... .N.E W... .N.. ...E W... .... .... .... ...E W.S. ..S. ..S. ..S. ..SE 那将是一张5x5的地图。左上角(1,1)具有West和North墙设置。右下角(5,5)的S外墙和East墙固定。 如果没有地图导航,则乐趣会大大减少。因此,至少要将您的玩家放在(1,1)朝北的位置,并为他们提供: [F]orward, [B]ackward, turn …

5
查找最大素数,该最大素数在删除数字后仍然是素数
在/math/33094/deleting-any-digit-yields-a-prime-is-there-a-name-for-this上,提出以下问题。删除任何一位数字后,剩下多少个素数?例如719,您得到了这样的素数71,19而79。尽管这个问题尚未解决,但我认为这是一个不错的编码挑战。 任务。 给出最大的质数,您可以在删除其任何一位后找到仍为质数的质数。您还应该提供找到它的代码。 得分了。您提供的素数的价值。 您可以使用任何免费的编程语言和库。 首先,要99444901133在链接页面上给出最大的内容。 时限。在第一个正确答案大于答案中给出的最大正确答案一周后,我将接受最大的正确99444901133答案。 分数到目前为止。 Python(原始) 4444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444444000000000000000000000000000000000000000000000000000000000000000000000000000000001111111111111111111111111111111 J(随机)(此答案从2013年2月21日开始为期一周的计时器。) 222223333333

29
排序数字。Sorta
受到命运多亏的不使用数组而对数字进行排序的启发,但我认为它比SO问题更好地编写了代码。 给定正整数,请对该整数排序。 最低分获胜! 从0分开始。 每个字符加一分。 为您使用的每个数组加20点。 为您的代码中的每个多字符字符串加10点。(除了初始输入,只要将其转换为整数而不对其进行任何其他操作即可。) 如果程序可以处理的最大位数受程序限制(与机器相反),则加32点。 如果您的代码可以根据给定的另一个参数更改排序的方向,则减去10分(无论您要使用什么,例如,降序排序为0,升序排序为1)。 每种语言都不尽相同,但其主旨是避免任何形式的可迭代数字黑客。 例: 输入:52146729 输出:97654221或12245679 笔记: 使用您的编程语言提供的任何内置排序功能,但是如果排序功能涉及字符串或数组,则要加分! 您可以将解决方案编写为直接接受整数的函数,也可以编写为接受argv,文件或流中的参数并将其转换为整数的程序。只要立即将其转换为整数并丢弃原始char *输入而无需对其进行任何进一步的操作,就不会受到任何惩罚。 处罚不仅适用于程序文本中的字符串文字,而且适用于程序功能的任何可能输入或输出字符串或可迭代的部分。例如,JavaScript String.prototype.split至少有一个字符串作为输入(this)和一个数组作为输出,因此使用+30即可。 我试图使这些规则指导算法设计的原理,而不是初始/最终I / O(因此请注意#2)。我认为,int(input())即使input的签名说它返回的是字符串,只要该表达式是程序的初始入口点,也不应适用该惩罚。同样,如果程序的最终输出是print(x)并且x必须是字符串,则惩罚不适用于最后一个字符串的强制转换操作。话虽如此,我从来没有明确地说过这必须是一个程序或I / O必须来自或离开的地方。接受int并返回的函数将起作用int,并且不会遭受这些歧义的困扰。

5
打印随机迷宫
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 编写一个程序,使用您选择的算法生成并打印随机迷宫。对于程序的多次运行,迷宫应该不同。高度和宽度作为命令行参数给出。使用|垂直墙,-用于水平壁和+拐角。迷宫被墙壁所包围,入口被缺少的墙壁所标记。迷宫中的宝藏#必须从至少一个入口进入。 $ python2 random-maze.py 4 5 +-+-+ |#| | | +---+

30
如何确定数字是否为奇数或偶数而无模或按位运算?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 6年前关闭。 如何确定数字是否为奇数或偶数而无模或按位运算? 这项挑战的效率非常低,但挑战了您思考创新解决方案的能力。 编辑: 请创建一个函数。同样,尽管正则表达式是一个有趣的响应,但该函数应接受任何有效数字。 背景:这个问题源于我最早的编程时代。我们上课第一天的作业是写一个简单的程序,打印“ odd”或“ even”。身为臭小子,我没有读过我们上课时使用的那本书,只是向我们展示了如何使用它%来确定这一点。我花了大约半个小时在房间里来回跳动,试图想办法做到这一点,并从讲座中记住,数字在从一种原始类型转换为另一种原始类型时可能会丢失并获得精度。因此,如果您将数字取下,然后将其除以二,然后再相乘,则该数字不等于原始数字,那么您将知道该数字是奇数。 第二天,当我们的老师评估我们的程序时,我感到震惊,他认为这是解决问题的最原始的方法,即使效率低下。

5
仍然解析的最丑陋的R代码行是什么?
目标是产生一行R代码,该代码可以: 尽可能少地做 尽可能多的字符(最多100个字符) 并且尽可能丑陋(其中“丑陋”可以表示低效的计算策略,诸如终止号的多余字符等)。 做你最坏的,绅士! 获胜的客观标准 胜出的答案将根据以下得分标准进行判断(得分最高的答案将获胜): 生成从0到10的序列(100分) 尽可能多的字符(N) 如果N = 100,则为0分 如果N <100,则获得N-100分(例如,每100个字符以下的人损失1分) 如果N> 100,则获得2(100-N)分(即,每超过100个字符,损失2分) 使用从许多负面例子ř地狱尽可能 每个引用的示例6分 每个示例仅计数一次。之所以如此,是因为“一个被囚禁在[火中的坟墓中的异教徒””只能被囚禁一次。因此,您的代码行中的两个全局分配只能使您获得6分。
19 code-challenge  r 

7
盲目随机排序
这是排序算法的一种非常常见的模式: def sort(l): while not is_sorted(l): choose indices i, j assert i < j if l[i] > l[j]: l[i], l[j] = l[j], l[i] 这些算法,因为指数运行良好i,并j都经过精心挑选,根据该列表的状态l。 但是,如果我们看不到l,而不得不盲目选择,该怎么办?那我们可以多快排序列表呢? 您面临的挑战是编写一个仅给出给定长度的输出随机索引对的函数l。具体来说,您必须输出i, j带有的两个索引,0 <= i < j < len(l)。您的函数可以在列表的任何长度上工作,但是会在长度为100的列表上得分。 您的分数是根据上述模式对均匀随机混排的列表进行排序所需的平均索引选择数,其中索引是根据您的功能选择的。 我将对提交的内容进行评分,在均匀随机排列的长度为100且没有重复输入的列表上,取1000次试验中的平均索引选择次数。 如果提交的作品明显不具有竞争力或没有终止,我保留进行更少试验的权利,并且我将进行更多试验以区分顶级竞争对手以找到一个获胜者。如果在我的计算资源极限内,多个顶级提交仍在误差范围内,我将宣布较早的提交为获胜者,直到可以利用更多的计算资源为止。 这是一个使用Python的评分程序示例: import random def is_sorted(l): for x in range(len(l)-1): if l[x] > l[x+1]: return …

1
俄罗斯方块策略
您的任务是实现在分数与代码大小之间取得平衡的Tetris策略。 在此版本的游戏中,四面体旋转并从上方掉入20行10列的网格中。跌落时,它们无法水平旋转或移动。像往常一样,当下落的碎片到达网格底部时,或者当进一步的向下运动会导致与已经占据的正方形发生碰撞时,下落的碎片就会停止。 当n水平线完全填满时,它们同时塌陷,网格n顶部重新填充了空线,并且分数增加了2 n -1点。对于n= 1,2,3,4,分别是1,3,7,15点。线条消失后,某些块可能仍漂浮在空中(没有“ 重力链反应 ”)。 如果当前棋子没有足够的空间显示在所需位置,网格将被清除,当前棋子将被忽略,并且游戏将当前的下一棋子继续。对此没有任何惩罚。 您应该阅读样片流,并决定如何旋转它们以及将它们放到哪里。前瞻的下一块(只有一个)是正确的:你可以看看一块i+1回应之前i,但你必须决定命运的i看着面前i+2。除了输入的最后一部分之外,没有其他可用的预读功能。 Tetromino类型及其旋转按照下表进行编码: type 0 1 2 3 4 5 6 O I Z J L S T ┌────┬────┬────┬────┬────┬────┬────┐ rotation 0 │## │# │## │ # │# │ ## │### │ │## │# │ ## │ # │# │## │ # │ …

1
来临挑战1:帮助圣诞老人解开他现在的保险库!
下一个>> 描述性关键字(用于搜索):使两个矩阵等效,重叠,数组,查找 挑战 圣诞老人在过去曾有过精灵从他的保险库中偷走礼物的历史,因此,今年他设计了一把很难破解的锁,今年似乎将精灵拒之门外。不幸的是,他丢失了组合,也无法弄清楚如何打开它!幸运的是,他雇用了您编写一个程序来查找该组合。它不需要是最短的,但他需要尽快找到它! 他的日程安排非常严格,他等不起。您的分数将是程序的总运行时间乘以程序为得分输入所输出的步数。最低分获胜。 技术指标 锁是1和0的方阵。它设置为1和0的随机排列,并且需要设置为指定的代码。幸运的是,圣诞老人记住了所需的代码。 他可以执行几个步骤。每个步骤都可以在任何连续的子矩阵上执行(也就是说,您必须选择一个完全由左上角和右下角所包围的子矩阵)(可以是非正方形子矩阵): 向右旋转90度* 向左旋转90度* 旋转180度 左右循环各行n元素(环绕) 循环上移m或下移每个列元素(自动换行) 水平翻转 垂直翻转 翻转主对角线* 翻转主反对角线* *仅当子矩阵为正方形时 当然,他也可以在整个矩阵上执行这些步骤。由于1和0只能在矩阵上交换,而正方形的值不能直接更改,因此开始和结束配置的1和0的数目相同。 格式规范和规则 将以您想要的任何合理格式为您提供两个平方矩阵的输入(开始位置和结束位置)。输出应该是任何可读格式的这些步骤的序列。由于这不是代码来源,请使其成为易于验证的格式,但这不是严格的要求。如果需要,可以选择在输入中采用矩阵的边长。 您的程序将在我的计算机上运行(Linux Mint,如果需要的话,您可以根据要求提供确切的版本详细信息:P),并且我将根据我在命令行上按“ Enter”键之间的时间以及命令退出。 测试用例 1 0 0 1 0 0 0 0 0 1 1 0 -> 0 0 0 0 0 1 1 0 -> 1 1 1 …

12
您所有的基地97都属于我们
许多编程语言都是使用可单独打印的ASCII,制表符和换行符编写的。然后将这97个字符存储在8位字节中(实际上能够容纳256个不同的字符!),这效率非常低-尤其是在代码高尔夫球中,每个字节都很重要!在这一挑战中,您将可以通过使用基本转化来降低得分。 挑战 您的程序/函数将字符串或字符数组作为输入,然后将其解释为以97为基数的数字。然后,它将其转换为以256为 基数的数字,并对表示该数字所需的符号(即字节)数进行计数。该计数将是您的程序/功能的输出/返回值。 一个使用base-2和base-10(二进制和十进制)的简单示例:如果输入为10110,则输出将为2,因为10110 2 = 22 10(表示输出必须用两位数字表示)。类似地,1101 2变为13 10,也给出2的输出,而110 2变成6 10,所以输出为1。 输入字符串可以包含所有95个可打印的ASCII字符,以及换行符\n和文字选项卡\t,这 将为基础转换创建97个符号的源字母。确切的字母表因此将(取代\t和\n与实际文字标签和换行;音符换行以下字面空间): \t\n !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 请注意,该字母的顺序很重要:例如,base-97 \t对应于decimal 0,并且!对应于decimal 3。 一些测试用例:(您不需要处理空字符串) Input Output 'example@domain.com' 15 'All your base are belong to us!' 26 ' abcd' 9 '~ abcd' 10 'ABCDEFGHIJK' 9 'zyxwvutsrpq' 10 '{".~"}.~' 7 '\t\t\t\t\t\t\t\t' 1 (with \t …

11
输出一个程序,该程序输出一个程序……输出PPCG
挑战: 编写一个代码,该代码在执行时将输出可以用另一种语言执行的第二个程序的源代码。第二个程序应该输出可以用第三种语言执行的第三个程序的源代码,依此类推。最后一个程序应输出PPCG一个可选的单行尾换行符。 获胜者将是使用最多语言的作品。第一个程序的代码长度将成为平局。 重要规则: 没有程序可以相同 每种语言只能在一种源代码上运行。在链中的两个位置使用相同的语言而不中断它应该是不可能的(请参见示例)。 缩短的链条不是断裂的链条。如果您可以在其他地方使用一种语言,并且最终结果仍然是PPCG,则该语言无效 语言的所有版本均视为唯一语言(但请记住规则2) 例子: 无效的提交: print("""print'disp("PPCG")'""") Python 3:print("""print'disp("PPCG")'""")打印print'disp("PPCG")' Python 2:print'disp("PPCG")'打印disp("PPCG") 八度:disp("PPCG")版画PPCG 这可以正常工作,但是:您可以在Python 2中运行第一个和第二个代码而不会中断链,因此这违反了规则2。 有效分数为3的提交: print("""print'disp("PPCG")'""") Python 3:print("""print'disp("PPCG")'""")打印print'disp("PPCG")' Perl:print'disp("PPCG")'打印disp("PPCG") 八度:disp("PPCG")版画PPCG 这是与无效示例完全相同的代码。不同之处在于,我们选择的语言符合规则2:您不能在Perl / Octave中运行第一个代码,在Python 3 / Octave中运行第二个代码,也不能在Python 3 / Perl中运行最后一个代码。即使Python 2可以运行第一个程序,这也是有效的,因为我们还没有使用Python 2作为其中一种语言。

4
最少的单词搜索
上周,我们使用英语中的前10,000个单词来创建最短的一维字符串。现在,让我们尝试2D挑战! 您需要做的是将上述所有单词都放入一个尽可能小的矩形中,以允许重叠。例如,如果您的单词是["ape","pen","ab","be","pa"],则可能的矩形将是: .b.. apen 上面的矩形得分为5。 规则: 一个单词中可以重叠多个字母 单词可以在8个方向中的任何一个方向 言语不能环绕 您可以在空白位置使用任何字符 您需要创建一个单词搜索,其中包含英语中排名前10,000个单词(根据Google)。 您的分数等于单词搜索中的字符数(不包括未使用的字符)。如果存在平局,或者提交被证明是最佳选择,则首先发布的提交将获胜。

4
一周中压缩的天数
输入星期几列表,则输出列表中最短的排序表示形式。 输入的格式是由一个或多个双字符子串的字符串Su(星期日), Mo(星期一), Tu(等), ,We,Th, Fr和Sa。输入不一定必须以排序的顺序给出。 要将输入转换为输出格式, 从星期天开始按星期几对输入进行排序(例如ThMoSaSuFrTuWe-> SuMoTuWeThFrSa)。 如果不引起歧义,请将缩写词减少到一个字母。例如,之所以SuMoTuWe成为,SMTW是因为第一个S不可能在星期六,因为这样会使输出未排序(与T相同)。但是,ThFrSa应该成为ThFS,因为星期二和星期四都在星期五之前,并将其减小以TFS产生歧义。 如果输出为now MTWTF,则D改为输出(代表“ 工作日 s”)。同样,SS应该成为E一周结束。最后, SMTWTFS应该成为A对所有天。 输入和输出都必须是单个字符串。 由于这是code-golf,因此以字节为单位的最短代码为准。 测试用例: In Out | In Out -----------------------|-------------------- SuTu STu | SuTuWe STW SuTuSa STuS | SuWeTh SWT TuThSa TTS | TuThSu STT Su Su | Sa Sa WeTh WT | FrTh ThF WeTu …

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.