Questions tagged «code-challenge»

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

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

15
看天上!这是一个超级骗子阵列!
在Code Review中受到我们竞争对手朋友的这个问题的启发。 定义 甲超级阵列是一个阵列,其中阵列中的每个新的元件比以前的所有元素的总和大。{2, 3, 6, 13}是一个超级数组,因为 3 > 2 6 > 3 + 2 (5) 13 > 6 + 3 + 2 (11) {2, 3, 5, 11}是不是一个超级阵列,因为 3 > 2 5 == 3 + 2 11 > 5 + 3 + 2 甲骗子阵列是一个阵列,其中阵列中的每个新的元件比以前所有的元素的乘积大。{2, 3, 7, 43, 1856}是一个超级数组,但它也是一个双精度数组,因为 3 > …

3
防辐射奎因
正如您应该(希望)知道的那样,防辐射的奎因是一种奎因,您可以从其中删除任何一个字符,但仍打印其原始的,预先修改的源。事实是,使用其中大多数,您只能删除一个字符。否则一切都会崩溃。这就是它的来历;您的目标是构建一个可以进行尽可能多的字符去除的防辐射的奎因。符合规则的任何语言都可以。 规则 该程序必须至少一个字符长 使用的语言必须是完整的(因此HQ9 +等语言不符合条件) 适用于普通拉皮的所有其他规则也适用于此。 用最少的溶液program_length^(2/n),其中的任何一组的准确n的字符,同时仍打印原始源代码胜被移除。

29
接近挑战的代码:整数和
这是一个简单的挑战:给定整数序列,找到其中的所有整数之和。 但是有一个转折。您的分数是代码与以下短语(挑战)之间的Levenshtein距离: 给定一组整数,找到其中所有整数的总和。 您可以假设输入中没有换行符或尾随空格。 输入/输出示例: Input: 1 5 -6 2 4 5 Output: 11 Input: 1 -2 10 Output: 9 可在此处找到Levenshtein距离的在线计算器:http : //planetcalc.com/1721/

5
使用正则表达式添加数字
我想尝试一种新型的regex高尔夫挑战赛,它要求您用正则表达式替代只解决简单的计算任务。为了使这一切成为可能,减少琐事,您将被允许应用多个替换,一个接一个。 挑战 我们将从简单开始:给定一个包含两个正整数的字符串,用用a分隔的十进制数表示,,产生一个包含它们的总和的字符串,也用十进制数表示。所以,非常简单 47,987 应该变成 1034 您的答案应适用于任意正整数。 格式 每个答案应该是一系列替换步骤,每个步骤都由一个正则表达式和一个替换字符串组成。(可选)对于序列中的每个步骤,您可以选择重复替换,直到字符串停止更改。下面是一个例子提交(它不解决上述问题): Regex Modifiers Replacement Repeat? \b(\d) g |$1 No |\d <none> 1| Yes \D g <empty> No 给定输入123,456,此提交将按如下方式处理输入:第一次替换将被应用一次并产生: |123,|456 现在在循环中应用第二个替换,直到字符串停止更改为止: 1|23,|456 11|3,|456 111|,|456 111|,1|56 111|,11|6 111|,111| 最后,第三次替换被应用一次: 111111 请注意,循环的终止条件是字符串是否更改,而不是正则表达式是否找到匹配项。(也就是说,如果找到匹配项,但替换项与匹配项相同,它也可能会终止。) 计分 您的主要分数将是您提交的替代步骤数。每次重复替换将计为10个步骤。因此,上面的示例将得分1 + 10 + 1 = 12。 在平局(不太可能)的情况下,次要得分是所有步骤的总和。对于每个步骤,请添加正则表达式(不带分隔符),修饰符和替换字符串。对于上述示例,将为(6 + 1 + 3) …

14
使用零星的Shift键编程
您的键盘有问题。该Shift键有自己的主见。每次键入一个字符时,您都不知道它是否会移位(尽管它是50-50)。除标准字符键外,键盘上的所有功能均不起作用。没有鼠标或其他输入方式。 您以某种方式知道解决问题的唯一方法是编写一个输出Dear Computer, please stop giving me shift!到stdout 的程序。幸运的是,您的IDE已打开,并且您能够运行程序,但是,当您键入它时,您当然不会知道将转换哪些字符。 您将使用什么顺序的按键来编写一个程序,使其有最大的机会进行首次尝试? 细节 您正在使用标准的QWERTY键盘,因此可以按50个字符键。 未转换版本(仅47个): `1234567890-=qwertyuiop[]\asdfghjkl;'zxcvbnm,./ 转换版本(仅47个): ~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:"ZXCVBNM<>? 最后3个键是Enter,,Tab和Space,它们是相同的。 如果您使用错误的键盘键入了一个N字符序列,则可能会输出2 N-(空格字符计数)方式。例如,键入A Space m可能会产生 a mor A m或a Mor A M。 编写一个程序,将这些字符并查看其所有2 N-(空格字符计数)可能的移位组合。输出Dear Computer, please stop giving me shift!的组合越多越好。您的分数是有效组合(有效程序)的数量除以组合总数。最高分获胜。 笔记 对于有效的程序,Dear Computer, please stop giving me shift!唯一的副作用是精确打印而不要进行其他任何输出。 有效的程序不应接受输入。 无效的程序可以做任何事情。 评论可以在任何地方使用。 空格答案无法获胜,因为获得100%的分数(相对)是微不足道的。您仍然可以提交Whitespace解决方案以获取乐趣。 您的程序最多不能超过1024个字符。 更新:更改Stop …

6
要Vectory!–矢量赛车大奖赛
CarpetPython用户发布了对此问题的新观点,由于搜索空间的增加,该问题更加关注启发式解决方案。我个人认为挑战比我的挑战要好得多,因此请考虑尝试一下! 矢量赛车是一种令人上瘾的游戏,可以用钢笔和一张正方形的纸来玩。您可以在纸上绘制任意的赛道,定义起点和终点,然后以转弯为基础操纵点型汽车。尽可能快地到达终点,但请注意不要陷入困境! 轨道 该地图是一个二维网格,其中每个单元格都有整数坐标。 您在网格单元上移动。 每个网格单元要么是轨道的一部分,要么是一堵墙。 恰好一个跟踪单元是起始坐标。 至少一个跟踪单元被指定为目标。登陆其中任何一个都可以完成比赛。多个目标单元不一定连接。 驾驶汽车 您的汽车以给定的坐标和速度矢量开始(0, 0)。在每个转弯中,您都可以调整速度的每个分量,也可以保持不变±1。然后,将得到的速度矢量添加到您的汽车位置。 图片可能会有所帮助!红色圆圈是您上一转弯的位置。蓝色圆圈是您当前的位置。您的速度是从红色到蓝色圆圈的向量。在这回合中,取决于您如何调整速度,您可以移动到任何绿色圆圈。 如果您降落在墙壁上,则会立即损失。 你的任务 您猜对了:编写一个程序,在输入跑道的情况下,将汽车尽可能少地转向到一个目标单元。您的解决方案应该能够很好地处理任意轨道,并且不会针对所提供的测试案例进行专门优化。 输入值 调用程序时,请从stdin中读取: target n m [ASCII representation of an n x m racetrack] time target是您可能会完成此轨道的最大匝数,并且time是该轨道的总时间预算(以秒为单位)(不一定是整数)。有关计时的详细信息,请参见下文。 对于以换行符分隔的轨道,使用以下字符: # –墙 S- 在开始 *– 一个目标 . –所有其他跟踪单元(即道路) 所n x m提供的网格外部的所有单元格均隐含为墙。 坐标原点在左上角。 这是一个简单的示例: 8 4.0 9 6 ###...*** ###...*** …

8
追捕W
当我还是个小伙子的时候,孩子们会逛到电脑商店玩“狩猎泵车”,直到员工把我们赶出去。这是一个简单的游戏,可以在1970年代中期的家用计算机上进行编程,其设备非常初级,因此我认为其中有些可能不是真正的小鸡,而不是小鸡大小的微处理器。 让我们通过在现代硬件上重现游戏来唤起过去的时代。 玩家从二十面体地图上的一个随机房间开始(因此,总共有20个房间,像二十面体的面孔一样相互连接,每个房间正好有三个出口)。 乌贼开始于随机选择的不同房间。尽管玩家无法确定气味的方向,但在与其位置相邻的三个房间中的任何一个房间中,都可以检测到汗味和气味。游戏仅报告“您闻到了臭味”。 玩家携带弓箭和无数箭矢,他可以随时向自己前方的房间射击。如果wumpus在那个房间里,它就会死亡并且玩家获胜。如果wumpus不在那个房间中,它会被吓住并随机进入连接到其当前位置的三个房间中的任何一个。 一个随机选择的房间(保证不是玩家开始的房间)包含一个无底洞。如果玩家在维修区附近的任何房间中,他都会感到微风,但不知道微风来自哪个门。如果他带着小坑走进房间,他就会死去,而小熊赢了。臀部不受坑的影响。 如果玩家走进wumpus的房间,或者如果wumpus走进玩家的房间,则wumpus获胜。 玩家使用数字指定面对的方向(1 =右,2 =左,3 =向后),然后进行一个动作(4 =射箭,5 =沿指定方向行走)。 为了得分,可以将每个游戏字符串(“您感到微风”,“闻到汗味”,“您的箭没有击中任何东西”,等等)视为一个字节。不要滥用此功能将游戏代码隐藏在文本中;这只是为了与玩家互动。 减去megabat的字节数的10%,以实施megabat,它始于与玩家不同的随机房间(尽管它们可以与wumpus和/或pit共享一个房间)。如果玩家带着蝙蝠走进房间,蝙蝠将把玩家带到另一个随机选择的房间(保证不是房间里有坑或小熊),然后飞到自己的新的随机位置。在与蝙蝠相邻的三个房间中,可以听到它们吱吱作响的声音,但是不会向玩家提供声音来自哪个房间的信息。 减去35%的字节数即可实现图形界面,以显示二十面体地图,以及有关玩家迄今为止所掌握的有关坑,腹肌和蝙蝠(如果适用)位置的信息的某种指示玩家。显然,如果腹部移动或玩家被蝙蝠移动,则地图需要相应地重置。 调整后的最低字节数为准。 可以在此网站以及其他网站上找到该游戏版本的BASIC源代码(不一定符合上述规则,并且在任何情况下完全不符合要求)。

16
最小的棋盘压缩
编写可以对棋盘进行编码和解码的算法或程序。目标是制作棋盘的最小表示,可用于确定(一旦解码)棋手在该回合中的所有移动可能性。 编码必须能够显示: 轮到谁了。 玩家是否可以在两侧守城堡。 玩家是否可以执行陪练,如果可以,则执行哪一个棋子? 所有作品的位置。 关于cast皮的重要说明:如果白色将其国王移动一圈,然后再将其向后移动一次,则必须明确的是,此后他们无法在任一侧守城堡。如果他们移动左车子或右车子,情况​​也会一样。尽管棋盘在视觉上处于与两个回合之前相同的状态,但游戏状态已更改。此处提供更多信息:http : //en.wikipedia.org/wiki/Chess#Castling 有关通行证的重要说明:这也是一个转弯敏感动作。阅读规则以获取更多信息。http://en.wikipedia.org/wiki/Chess#En_passant 根据需要确定输入和输出。压缩力最大的道具! 您的分数取决于最坏的情况-最大可能的大小(以位为单位)。确保显示如何计算该数字以及所占金额。拍摄最小的最坏情况!

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

9
做一个缓慢的错误奎因制造商!
作为他对“犯错误的原因” 的回答的一部分!,@ Falko提出了以下算法: 如何在2分钟内创建自己的解决方案? 在您选择的IDE中打开一个新文件。 将头撞到前方的键盘上。 编译。 将代码替换为编译器错误消息。 重复步骤3和4,直到代码收敛。 我敢打赌,这样的程序在大多数情况下会很快终止! 任务 您的任务是证明他错了。 编写一个满足以下条件的完整程序: 在编译或解释时,它会生成一条错误消息,而在依次编​​译或解释时,它也会导致一条错误消息。 一遍又一遍地重复步骤1,最终将遇到一个固定点,即一个错误提示。 附加规则 最终错误消息的长度必须为正。但是,以前的错误消息和原始的源代码可能为空。 原始源代码的长度不得超过1024个字节。 原始代码或任何步骤中生成的代码均不会产生非错误输出。 输出必须清楚地标识为错误消息,由于语法错误,运行时错误,未定义引用等原因,必须由编译器/解释器生成输出。 您的程序可能未收到任何输入或需要任何标志来产生循环。 您的程序可能依赖于其语言或版本的特定实现。 计分 您的分数是您的源代码在生成错误提示之前需要执行的有限步骤。得分最高的提交者获胜。 原始源代码的长度将用作平局决胜局。越短越好。 例 在Chicken中,该程序 生成以下错误消息: TypeError: Cannot read property 'NaN' of undefined 如果反过来解释此错误消息,则会生成错误消息 Error on line 1: expected 'chicken' 如果反过来解释,它就会产生自己。 因此,空Chicken程序的得分为2。 反例 PHP代码 ab<?=c 生成错误消息 PHP Parse …

3
解决魔方
编写最短的程序,以在合理的时间范围内移动并解决Rubik的多维数据集(3 * 3 * 3)(例如,在您的计算机上最多5秒,而最多移动1000秒)。 输入的格式为: UF UR UB UL DF DR DB DL FR FL BR BL UFR URB UBL ULF DRF DFL DLB DBR (此特定输入表示已解决的多维数据集)。 前12个2个字符的字符串是UF,UR,... BL位置中的边(U =上,F =前,R =右,B =后,L =左,D =下),然后是下8个3个字符的字符串是UFR,URB,... DBR位置中的角。 输出应以这种格式给出一系列移动: D+ L2 U+ F+ D+ L+ D+ F+ U- F+ 其中D1或D +代表将D(下)面顺时针旋转90度,L2代表将L面旋转180度,U3或U-代表将U面逆时针旋转90度。 字母不区分大小写,空格是可选的。 …

27
警察:隐藏的OEIS子字符串
这是警察和强盗的挑战。这是警察的话题。在强盗的线程是在这里。 作为警察,您必须从OEIS中选择任何序列,并编写一个程序p,该程序将打印该序列中的第一个整数。您还必须找到一些字符串s。如果将s插入p,则此程序必须打印序列中的第二个整数。如果将s + s插入p的相同位置,此程序必须打印序列中的第三个整数。s + s + s在相同位置将打印第四个,依此类推。这是一个例子: Python 3,序列A000027 print(1) 隐藏的字符串是两个字节。 字符串为+1,因为程序print(1+1)将打印A000027中的第二个整数,程序print(1+1+1)将打印第三个整数,依此类推。 警察必须揭示序列,原始程序p和隐藏字符串s的长度。强盗通过找到任何字符串裂纹提交到该长度并插入它来创建序列的位置。该字符串不需要匹配预期的解决方案即可成为有效裂纹,插入字符串的位置也不需要。 规则 您的解决方案必须能按顺序使用任意数量的数字,或者至少要解决直到失败的合理限制为止,这取决于内存限制,整数/堆栈溢出等。 胜出的强盗是破解最多提交内容的用户,并且决胜局是首先达到该破解数量的用户。 获胜的警察是最短的s未被破解的警察。决胜局是最短的p。如果没有完整的意见书,那么拥有解决方案的警察将获得最长的胜利。 为了声明安全,您的解决方案必须保持完整状态1周,然后显示隐藏的字符串(及其插入位置)。 s可能不是嵌套的,它必须首尾相连。例如,如果s为10,则每次迭代都会进行,10, 1010, 101010, 10101010...而不是10, 1100, 111000, 11110000... 从序列的第二项而不是第一项开始是可以接受的。 如果序列中的术语数量有限,则超过最后一个术语将导致未定义的行为。 禁止使用所有加密解决方案(例如,检查子字符串的哈希)。 如果s包含任何非ASCII字符,则还必须指定使用的编码。

30
难道你杀死了贾伯沃克吗?
您的任务是输出确切的字符串 The Jabberwocky 无需输入。输入和输出的常规规则适用,因此允许使用功能和程序。 当然有一个陷阱,没有陷阱就不会很有趣。您的程序在去除非字母字符时,必须开始写诗《 Jabberwocky》(不区分大小写)。要开始诗歌,它必须是诗歌的连续子串,从开头开始。空字符串很好(尽管您可能得分不高)。 这是供参考的文本: twasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabebewarethejabberwockmysonthejawsthatbitetheclawsthatcatchbewarethejubjubbirdandshunthefrumiousbandersnatchhetookhisvorpalswordinhandlongtimethemanxomefoehesoughtsorestedhebythetumtumtreeandstoodawhileinthoughtandasinuffishthoughthestoodthejabberwockwitheyesofflamecamewhifflingthroughthetulgeywoodandburbledasitcameonetwoonetwoandthroughandthroughthevorpalbladewentsnickersnackheleftitdeadandwithitsheadhewentgalumphingbackandhastthouslainthejabberwockcometomyarmsmybeamishboyofrabjousdaycalloohcallayhechortledinhisjoytwasbrilligandtheslithytovesdidgyreandgimbleinthewabeallmimsyweretheborogovesandthemomerathsoutgrabe 这是一个可以用来测试此属性的程序。 如果用尽了诗歌,则不得使用任何其他字母字符。 字母字符的字符a- z和A- Z这里是完整列表: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 计分 您的程序将以使用的非字母字节数来得分,而少则更好。 这是一个为答案评分的Haskell程序。(假设输入有效) 范例程序 以下程序将有效: twas&*brilliga77812nd Thesli thyt Oves didgy reand Gim bleinth ewab eal lmims ywe"""""""" ret h eb or o g o ve sa n dthemomerAthsoutgrabebewaretheJABBERWOCKmysonthe)(*)()((*98980908(()*(jawsthatbit 简化为字母字符时,它是: twasbrilligandTheslithytOvesdidgyreandGimbleinthewabeallmimsyweretheb orogovesandthemomerAthsoutgrabebewaretheJABBERWOCKmysonthejawsthatbit 匹配诗的第一位(不区分大小写)。 该程序将获得59分,因为它包含以下非字母字符: &*77812 """""""" )(*)()((*98980908(()*(

28
矩阵是中心对称的吗?代码也是吗?
定义 甲中心对称矩阵是正方形矩阵是对称的围绕其中心。更严格地说,如果对于任何满足以下关系,则大小为的矩阵是中心对称的: AAAn×nn×nn \times ni,j∈([1,n]∩Z)i,j∈([1,n]∩Z)i,\: j \in ([1, n] \cap \mathbb{Z})Ai,j=An+1−i,n+1−jAi,j=An+1−i,n+1−jA_{i,\:j}=A_{n+1-i,\:n+1-j} 此类矩阵的示例 这是这样的矩阵的对称性的图示(从上述Wikipedia文章中借来): 偶数边长( ×)的中心对称矩阵:4×44×44\times 4 ⎛⎝⎜⎜⎜1584267337624851⎞⎠⎟⎟⎟(1234567887654321)\left(\begin{matrix} 1 & 2 & 3 & 4 \\ 5 & 6 & 7 & 8 \\ 8 & 7 & 6 & 5 \\ 4 & 3 & 2 & 1\end{matrix}\right) 还有一个奇数边长():3×33×33\times 3 …

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.