Questions tagged «code-challenge»

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

7
查找无和分区
执行摘要 给定input k,找到整数分区,1将其划分n为无k和子集,以n在10分钟内找到最大的子集。 背景:舒尔数 一组A是免费的总和,如果其自我总结A + A = { x + y | x, y in A}有没有相同的元素吧。 对于每个正整数,k都有一个最大的整数S(k),以便{1, 2, ..., S(k)}可以将集合划分为无k和子集。该编号称为第k 个 Schur编号(OEIS A045652)。 例如,S(2) = 4。我们可以将分区{1, 2, 3, 4}为{1, 4}, {2, 3},这是唯一的分区,分为两个无和子集,但是现在不能在这5两个部分中添加。 挑战 编写一个执行以下操作的确定性程序: 以正整数k作为输入 将当前的Unix时间戳写入stdout 按照当前的Unix时间戳,将每个序列的划分为1to 的一系列划分n为无k和子集,以进行递增n。 获胜者将是在n输入后10分钟内在我的计算机上打印最大分区的程序5。纽带将以最快的时间断开,以找到最大的n,平均3次运行的分区:这就是为什么输出应包含时间戳的原因。 重要细节: 我有Ubuntu Precise,因此如果不支持您的语言,我将无法评分。 我有一个Intel Core2 Quad CPU,所以如果您要使用多线程,那么使用4个以上的线程是没有意义的。 如果您希望我使用任何特定的编译器标志或实现,请在您的答案中清楚记录。 您不应对代码进行特殊处理以处理输入5。 您无需输出发现的所有改进。例如,对于输入,2您只能输出的分区n …

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

2
帮助我们的机器人到达传送器
更新:添加了一个Python框架来开始。 太空站已经被破碎机器人取代。在站点自毁之前,您必须将许多昂贵且易碎的被称为“兔子”的高科技机器人引导到出口传送带,但是破碎机器人正在走廊上巡逻。 您的程序将获得一个ASCII映射,并且每转都会告诉破碎机器人在哪里以及您当前的兔子在哪里。然后,您的程序应将兔子移向出口传送带,同时避开破碎机器人。 执行 使用以下命令运行Python 2控制器: python controller.py <mapfile> <turns> <seed> <runs> <prog>... <prog> can be <interpreter> <yourprog> or similar. 种子是用于破碎机和程序PRNG的小整数,因此运行是可重复的。不管实际使用的种子如何,您的程序都应一致地执行。如果种子为零,则控制器将为每次运行使用随机种子。 控制器将使用地图文本文件的名称和种子作为参数来运行您的程序。例如: perl wandomwabbits.pl large.map 322 如果您的程序使用PRNG,则应使用给定的种子对其进行初始化。然后,控制器通过STDIN发送程序更新,并通过STDOUT读取兔子的运动。 控制器每转一圈将输出3行: turnsleft <INT> crusher <x,y> <movesto|crushes> <x,y>; ... rabbits <x,y> <x,y> ... 然后等待程序输出一行: move <x,y> to <x,y>; ... 更新:在控制器发送第一行之前,您的程序将有2秒钟的初始化时间。 如果您的程序在输入控制器兔子位置后花了0.5秒以上的时间来响应移动,则控制器将退出。 如果网格上没有兔子,则Rabbits行将没有值,并且您的程序应输出一条裸露的“ move”字符串行。 请记住,每转一圈都要刷新程序输出流,否则控制器可能会挂起。 …

8
建立长字链
挑战在于找到最长的英语单词链,其中下一个单词的前3个字符与最后一个单词的后3个字符匹配。您将使用Linux发行版中可用的通用词典,可以在此处下载: https://www.dropbox.com/s/8tyzf94ps37tzp7/words?dl=0 其中有99171个英语单词。如果本地Linux /usr/share/dict/words是同一文件(具有md5sum == cbbcded3dc3b61ad50c4e36f79c37084),则可以使用该文件。 单词只能在答案中使用一次。 编辑:字母必须完全匹配,包括大写/小写,撇号和重音。 有效答案的一个示例是: idea deadpan panoramic micra craftsman mantra traffic fiche 得分为8。 有效词链最长的答案将是赢家。如果出现平局,最早的答案将获胜。您的答案应列出找到的单词链,以及(当然)您编写的用于执行此操作的程序。

30
拼图拼图
这是一个依赖答案的挑战!答案的顺序很重要,您的确切任务取决于发布的最后一个答案。您可能想按最旧的答案排序。 让我们拼凑一些代码!这是1920个随机(可打印ASCII)字符。可以将它们视为仍在盒子中的一大堆未分类的拼图碎片: L-^=v^Ej2tW8OxNOIecSt4m}tji2O%YRJ;PJ!M|0*oO77$*Rs&2*<c"KI7e%FY^?I=];Y@`x)u)IBk%_a#<E6<yv5O*$kL): KNGq)2Wa%b)j."(6U|{[UY@`lrCSJ`u0RHX!1z7f,v}n=GvRgkrEZ=YT:4H44bz]iC<](:+FF?Ay'vX~h5QMF)0vaXk1sk@p Zj).{+l;PBKHABvEP%FnSw>u<_-4B^A>I8Kay&5]vXZJ{fCF]UVZ<!ZpOI$7\Y%`@:%H3wPsX-`/l]ZZ?Q/d`\M<T@'t]zip {[ovg:6EpCT&'+vU4Heb^;}0AV|?<}M0rAH/^DL"RkT~%$[VUlM]-&We4(P=66},hL~;a`:$'yty.W[g2OWcL~b:Ryj0*eN< ;&-n[F1F=oh0k[NI!xS"]pA@Y;K}'=ekG5yda8J$+`N;:FIx:l,f_LT@sV[]HF@2*vl?|q"GL1j&%e(CyYPqY%3W|@`z}]bp 4_'1Nx{"G2&j6$UWt_#%`sTt2xC}s1P8J<gV24_RWge/aMuyVOjz=zS!1i2s@`Q#@^~@W/k@.YLbKxS:g9?J^p;7ju?B\yC5 x,ZApKS5G4}kx_iM)f4/|su>=[{XSV#{,j5Qn3U.v5LF;HXs%DYm4'+efmU;\}f6j$SFCRC`Gsd37:'3$q=bs;lvsW0Yj^:- I[94@I|.IpR=}4KB4Z0G4>8PR29'L?n\gk,*4X[-%T`\FC)jj0jl_x<xL8E:G2-"3tT8&E}"sE+SH[7jR%@V)a{!m8K>.rAO 2[dq7GX9nrz8p4}^2mn@q|dF%<.Tl8)Dk?O.<UoE(a*k_=4+u!h$^bVd:$jS#EHFh@Z=y=ib^~/~lEJ^SQ3E_t#&^IOov7v8 ~j#I#OHgxg{DZDyCsq-(GVq}HbiG,JV?eJ~5wJ;bSt@;3LI!2(6gIT92>}`_dw;YF@ccTIEz\Gu@2(}J2I1"S{R(2niIYPp9 8A3iiP[*!SH2*SN8'`V?w4Ufx2H*Az%{}FlUdH31TJ5{:ge^N91^;9Gj`Uqf'$_|8P"kHR1w.(ASwmN)U-~q"[XcWbqPnns= d.ZoPJ}$Xc2lA>HN28`(d0y+UAr*sQ=?KE07=\FsVN(#?&hRabS%BVI#<`O$o#4x5ZFFLGDcA4t?&Eh~Z$oBWwNSNv`^;vO' 2&9egng~L#\QkfMG?S/n@%-VA[?f9K&3"V%P#Sv0!D<,GV:Z;3c&zFe^k&^0b7fAjvrbMc^Lq7k$h=YL<h7<0\NK>~Q=uUv) 4cI$.'b-RVS-=rom:=8QR=c>9am-^5F[XGv>E/>|]~\']3{r{kTc?ee1v=;I7]52#NE)~A;}!z>5?hi{5<9FtWH6{VO_Y-Jy Mw>{l8n#mD,kl'8cG^.7sy=QqU-3~SKGs5(.Ta]:-Vfr'NS$o*q:w6e$&7spk3{CFT'l_hGY0-0Xui*5i^0^fO@6?2IdCn_C lPKaJ6]0t!u>v8<d'Vby]8kEHh04p(YI)&7w82BrGB3PkI,s+%7ux5)gau`G!8F8hLa4[lfD55Xf3Hqy*-K,?;2'fxH3JWYE Z.[N`:[K:CY@TzKX4TMXsm{Xbd:B3)Gy[mlwnC$>)z`:k=C\0ho/v{57#+2,*%]>p~vI2^C:2DebJR>.ESw^wd2N<~]O9sOQ `_yvIw&Ryf%JgT@W(G1wfU3.4G3U}x1jKJzJY\S9n$2~P;F}*eT9UXcTNBTrTs>~0v_Oi.y8ofX6i5u$;'^"q][QhTb*gO[U n'R0"v1r+9fv;5G7Bg=D:c*a=1@[}7}dYOO{Mz2&@6`jnNq.QcBDM9Dd=R.*=MqZ93#'{AJJFqx<{qb':B!H8ig1L%T\Vuc" (h$i3`,scX'hqpbw"=nY`*Lu:h1wR{+-`\^3cQkIWfq)3?&p;~pvDW$o7\O|R6rB2{PX.s#G6A.s<OA_,TI_b*&lO@L3KrQv 我们令人费解的“地板”最初只是96x20的空格网格(代码点0x20)。每个答案可能会在相邻的拼图块之间移动,并最多选择10个拼图(字符)并将其添加到拼图中以创建一个新程序。该程序必须打印您的答案编号(从1开始按顺序编号)。 接听 了解这一挑战的关键在于,一次只能一个人回答,每个答案取决于之前的回答。 永远不应该有两个答案有相同数量的ñ。如果两个人碰巧同时回答了一个N,则稍后回答的人(即使相差几秒钟)也应该宽容地删除他们的答案。 为了使此过程更流畅,请在发布答案时尝试遵循以下步骤: 确保有人独立验证了先前答案的正确性(并留下了相应的评论)。 以前面的“拼图地板”和“盒子”为例。您可以将拼图地板上的任何相邻字符块作为一个单元自由移动(如果字符沿水平或垂直方向触摸,则它们是相邻的)。相邻的块无法再次拆分。5x4网格上的示例: Last answer: Valid: Invalid: |a bc| |d g | |a bc| | bc | |a bc| | d e | |fa …

3
选择您自己的语言代码
让我们以16x16可打印ASCII字符(代码点0x20至0x7E)为网格。从左上角到右下角有30条选择的15条路径,仅进行正交移动,如以下示例所示: ##.............. .#.............. .######......... ......##........ .......##....... ........#....... ........#....... ........#....... ........###..... ..........###... ............#... ............#### ...............# ...............# ...............# 每个此类路径均由31个字符组成。请注意,这些字符中的每个字符在31个对角线中都不同: 0123456789ABCDEF 123456789ABCDEFG 23456789ABCDEFGH 3456789ABCDEFGHI 456789ABCDEFGHIJ 56789ABCDEFGHIJK 6789ABCDEFGHIJKL 789ABCDEFGHIJKLM 89ABCDEFGHIJKLMN 9ABCDEFGHIJKLMNO ABCDEFGHIJKLMNOP BCDEFGHIJKLMNOPQ CDEFGHIJKLMNOPQR DEFGHIJKLMNOPQRS EFGHIJKLMNOPQRST FGHIJKLMNOPQRSTU 这不是示例网格。这是31个对角线的可视化。 如果没有对角线两次包含相同字符,我们将称其为对角线唯一的网格。如果网格具有此属性,则没有两个路径将包含相同的字符串。(只是澄清一下,可视化本身基本上是相反的就是对角线唯一。) 挑战 设计一个对角线唯一的16x16网格,以使尽可能多的路径是有效代码,Jabberwocky并以尽可能多的语言打印到STDOUT(带有可选的尾随换行符)。每个代码可以是完整程序,也可以是没有返回语句的无参数函数的主体(这是为了不阻止需要在某些样板函数/类/命名空间中使用其代码的语言)。 注意:为简单起见,您可以为未使用的单元格使用一些保留字符,例如Ypnypn。 对于每个有效路径,请清楚说明其有效的一种编程语言。 获奖者是上述列表中使用的语言数量最多的作品。(或者,对于要计数的每种语言,请显示一种在该语言中有效的路径,但请确保不要对两种语言的任何路径进行计数。) 如果出现平局,请计算没有被任何有效路径覆盖的网格单元。较少的未使用单元会获胜。如果仍有平局,我将以(净)票最多接受答案。 验证脚本 我只是很快地整理了一个CJam片段,您可以使用它来验证网格对角线唯一。 转到在线CJam解释器。 粘贴以下代码 l:A; qN/W%A16**33/z{A-__|=}%:*"D""Not d"?"iagonally unique" 在输入字段中,将保留字符放在第一行(如果不要求使用保留字符,请使用未使用的字符),然后将网格置于2到17行。例如,对于Ypnypn的答案: …

4
使用现有框架对2048 AI进行编程
编辑:最近,我的问题已被提议作为2048 Bot Challenge的副本。我要强调,这个问题不同于那个问题,并且要求答案与那个问题的思考方式有所不同。2048 Bot Challenge要求用户创建一个机器人,该机器人将运行一个小时,其中最高的分数是用户的分数。此外,它的限制为555个字节。我的挑战很少频繁地运行代码,只有3次。您的得分是通过使用这三倍的平均得分,再除以您打高尔夫球的字符长度得出的。我的问题是鼓励参赛作品“更聪明”,而不是试图通过蛮力获得最高分。 -- 编辑:将get方法更改为getTile,以避免与JS关键字get发生冲突。此外,增加了高分部分。 最近,我创建了一个站点,该站点允许使用JavaScript控制流行的游戏2048。我的网站在这里链接: http://thatcoolidea.com/2048 怎么样: Ace编辑器位于面板上方。您将代码放入其中,该代码每250毫秒运行一次,或每秒运行4次。这称为循环。 使用以下方法控制电路板。您不能使用箭头键。 up(); //move up down(); //move down left(); //move left right(); //move right move(integer); //integer is a direction. 0:up,1:right,2:down,3:left getTile(y,x); //gets the value of the tile in position y,x on the board. See diagram 为方便起见,定义了以下变量: eother //boolean, alternates every …

6
最小的字节码解释器/ VM
页首横幅-已通过JIT编译(越低越好) es1024-81.2分(包括有效的编译器!) 基思·兰德尔-116点 病-121点 页首横幅-解读(越低越好) 马丁·布特纳(MartinBüttner)-706654点(大约2个小时左右)。 ip割-30379点(97秒) 您的任务(如果您选择接受)是编写尽可能小的字节码解释器/ VM。VM /解释器使用以下指定的语言使用小型CISC架构(操作大小可能有所不同)。完成后,必须打印3个CPU寄存器的值,以证明打印了正确的输出(3,126,900,366)。 编译器 如果您想进行自己的测试,请在下面发布编译器。随时发布答案。 显示代码段 window.compile=function(){var e=$("#text").val().toLowerCase().match(/[^\r\n]+/g);var t=[];for(var n=0;n<e.length;n++)compileLine(e[n],t);var r="";for(var n=0;n<t.length;n++)if(typeof t[n]=="string")r+="\n";else r+="0x"+t[n].toString(16)+" ";$("#compiledArray").val(r)};window.compileLine=function(e,t){var n=e.split(" ");if(n[0]=="load"){t.push(0);t.push(getInt(n[1]));t.pushArr(getInt(n[2]))}if(n[0]=="rload"){t.push(1);t.push(getInt(n[1]));t.push(getInt(n[1]))}if(n[0]=="push"){t.push(2);t.push(getInt(n[1]))}if(n[0]=="pop"){t.push(3);t.push(getInt(n[1]))}if(n[0]=="add"){t.push(4);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="sub"){t.push(5);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="mul"){t.push(6);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="div"){t.push(7);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="jmp"){t.push(8);t.pushArr(getInt(n[1]))}if(n[0]=="cmp"){t.push(9);t.push(getInt(n[1]));t.push(getInt(n[2]))}if(n[0]=="branchlt"){t.push(10);t.pushArr(getInt(n[1]))}if(n[0]=="brancheq"){t.push(11);t.pushArr(getInt(n[1]))}if(n[0]=="branchgt"){t.push(12);t.pushArr(getInt(n[1]))}if(n[0]=="branchne"){t.push(13);t.pushArr(getInt(n[1]))}t.push("NEW LINE")};window.getInt=function(e){if(e.trim().startsWith("<--"))return"COMMENT";if(e=="r0")return 0;if(e=="r1")return 1;if(e=="r2")return 2;if(e.startsWith("0x"))return parseInt(e,16);if(isNaN(parseInt(e)))alert(e);return getIntBytes(parseInt(e))};if(typeof String.prototype.startsWith!="function"){String.prototype.startsWith=function(e){return this.slice(0,e.length)==e}}Array.prototype.pushArr=function(e){this.push.apply(this,e)};window.getIntBytes=function(e){var t=[];var n=4;do{t[--n]=e&255;e=e>>8}while(n);return t} <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> <textarea id="text" cols="40" rows="10"></textarea> <br/> <button onclick="compile()">Compile</button> <br/> <textarea id="compiledArray" cols="40" rows="10" readonly></textarea> …

13
创建一个FizzBu​​zz编译器
欢迎来到编译器高尔夫的世界。您的任务是编写一个程序,该程序会生成另一个程序,以按规范播放FizzBu​​zz的变体。 您的编译器 编写一个编译器,以生成符合规范的FizzBu​​zz程序。此变体的规范以整数/字符串对数组的形式表示。 输入可以采用任何方便您的语言的形式。(我的示例使用n:xxxx,但这只是出于说明目的。) 每次调用编译器时,每个整数输入只能使用一次。 每对的整数将具有至少一个值。 每对字符串仅由四个ASCII字母组成。 输出必须是符合以下规则的单个完整程序。 输出可以是任何方便的形式,只要它是文本程序即可。(因此,没有返回的lambda表达式。) 对于不符合上述规则的输入,行为未定义。 您生成的FizzBu​​zz程序 编译器生成的程序将使用单个整数n作为输入。它将输出一个从1到n的数字序列,并在需要时用FizzBu​​zz字符串替换数字。 生成的程序必须使用与编译器相同的语言。 输入n可以采用适合您的语言的任何形式。 n的值至少为1。 输入编译器的至少一个整数的倍数的数字必须替换为所有与这些整数结合在一起的字符串。 不能用FizzBu​​zz字符串替换的数字必须以十进制ASCII输出。 例如; > GenFizzBuzz 3:Fizz 5:Buzz > a.out 5 1 2 Fizz 4 Buzz 计分 您的条目将根据编译器生成的程序的长度加上编译器的长度进行评分。使用以下每个参数多次运行编译器,然后将生成的程序的长度与编译器的长度相加,以得出分数。 只是计数。(无输入-生成的程序将在没有替换的情况下从1到n计数。) 只是高尔夫。(1:Golf-生成的程序将输出n次“ Golf” 。) 经典FizzBu​​zz。(3:嘶嘶声,5:嗡嗡声) (请注意,编译器需要为任何有效输入生成代码,而不仅仅是列出的这些。)

6
旅行推销员
给您一个列表或向量或其他任何东西,一堆3元组或其他任何东西,其中前两个是字符串,第三个是一个数字。字符串是城市,数字是它们之间的距离。元组中城市的顺序是任意的(即,先到先后都没关系),因为每种方式的距离相同。另外,每对连接的城市都有一个元组。并非所有城市都可以连接。而且,距离始终为正(不是0)。您不需要检查这些条件,可以假设输入格式正确。您的工作是按循环顺序返回城市,这样,如果您从任何一个城市开始,然后按顺序返回同一城市,则城市之间的总距离将最小(确切地说,总之情况。)您可以假设存在解决方案。例如,假设您被授予 [("New York", "Detroit", 2.2), ("New York", "Dillsburg", 3.7), ("Hong Kong", "Dillsburg", 4), ("Hong Kong", "Detroit", 4), ("Dillsburg", "Detroit", 9000.1), ("New York", "Hong Kong", 9000.01)] 您可以输出以下任何内容(但只需要输出一个): ["Detroit","Hong Kong","Dillsburg","New York"] ["Hong Kong","Dillsburg","New York","Detroit"] ["Dillsburg","New York","Detroit","Hong Kong"] ["New York","Detroit","Hong Kong","Dillsburg"] ["Dillsburg","Hong Kong","Detroit","New York"] ["New York","Dillsburg","Hong Kong","Detroit"] ["Detroit","New York","Dillsburg","Hong Kong"] ["Hong Kong","Detroit","New York","Dillsburg"] …

2
垄断压缩
给定代表玩家回合开始时大富翁游戏当前状态的字符串,请将所有必要的数据压缩到最小的输出中。答案将根据输出大小和源大小来判断。 注意:有许多区域差异,但本文中对属性名称等的所有引用均基于此板。 输入: 输入将作为一个;单独的字符串给出。该字符串以您选择的语言中惯用的任何方式提供给程序,无论是stdin,参数等。 未格式化的输入如下所示: numPlayers (1 to 8) whose turn (0 to numPlayers-1) for each player: bankrupt? (true/false) money (0 to 2^16-1) get-out-of-jail-free cards (0 to 2) position (0 to 39) jail turns (-1 to 2) for 28 properties: owner (-1 to numPlayers-1) mortgaged? (true/false) improvement level (0 to …

9
字符串中单词的相反顺序
任务 系统会为您提供一个匹配的可变字符串[a-z]+( [a-z]+)*。 您必须将其变异为包含相同单词的字符串,但是顺序相反,以便“大家好”变成“大家好”。 您不得使用固定数量以上的额外内存(因此,请勿将整个字符串或任何整个单词复制到刚分配的缓冲区中)。 没有时间限制。绝望的低效率不会损害您的分数。 如果您选择的语言不允许对字符串进行突变,则可以使用字符数组作为替代。 你的分数 您的分数完全是根据您对字符串元素的分配次数来计算的(小分数最好)。如果您使用写入字符串的库函数,则其写入也将计数。 假设输入s所需的分配数量为n(s)。然后,您的分数是所有输入s(与上面指定的正则表达式匹配)的n(s)/ length(s)的最大值(在学上,最高)。如果无法精确计算,则可以使用可以证明的最低上限。 如果可以证明您的算法使用的渐近分配较少,那么您可以平分秋色(即使得分相同,也可能发生这种情况,请参阅下文)。如果您不能这样做,则可以通过显示使用更少的额外内存来打破平局。但是,第一个抢七的条件始终优先。 对于某些输入,每个字符都需要更改,因此得分不能低于1。 我可以想到一个得分为2的简单算法(但我没有输入)。 关于至上和纽带的注意事项 一组数字的最大值是不小于任何一个的最小数字。这与集合的最大值非常相似,除了{2/3,3/4,4/5,5/6,...}等一些无限集合没有单个最大元素,但仍然有一个最大值,在这种情况下1。 如果您设法在我的得分2算法(例如)上仅“保存”固定数量的作业,您的得分仍将为2,因为输入越大,您将任意接近2。但是,如果涉及到决胜局,您将获胜。

2
压缩Befunge程序
Befunge是一种二维深奥的编程语言。基本思想是将(一个字符)命令放置在二维网格上。控制流遍历网格,执行传递过来的命令,并在命中箭头(>^<v)时更改方向。命令是基于堆栈的;看到这个清单。另请参见http://esolangs.org/wiki/Befunge。 提供Befunge-98的规格。 问题 编写一个程序,将Befunge程序转换为更紧凑的表示形式。例如,以下程序打印0: > 0 v > @ . ^ < 在这种情况下,可以通过删除空格行来压缩它而无需更改程序的行为,从而得到 >0v >@. ^ < 更复杂的转换可以旋转或镜像命令序列,并消除不必要的控制流命令以压缩程序。例如,使用此程序: >12345v 6 v....7< . . . @ 您可能会将程序的结尾塞进洞里: >12345v >...@ 6 ^....7< 对于第一个示例,最紧凑的程序是 >0.@ 您可以使用任何转换,只要输出程序给出的结果相同即可。 输入程序 输入程序是有效的Befunge-98程序。 您可以假设输入程序是确定性的。也就是说,它不使用读取外部状态的命令:用户输入命令&和~,随机化器?以及自修改代码命令p和g。 您可以假设输入程序终止。 计分 这不是代码高尔夫,而是编写执行代码高尔夫的程序的问题。 输入是一组测试用例(满足上述输入限制的Befunge程序)。总分是测试案例的总分。 每个测试用例的得分 分数是输出程序中非空单元格的凸包的面积,其中每个单元格都视为一个正方形,其四个角为笛卡尔平面中的晶格点。例如, > v @ < 获得9.5分。 如果您的程序在特定输入上没有在合理的时间和内存中终止,则得分为输入程序的得分。(这是因为您可以简单地添加一个限时包装程序,如果您的程序没有及时终止,则该包装程序将不变地输出输入程序。) 如果用您的程序处理后,测试用例程序具有不同的结果(或无法终止),则分数为输入程序的分数加100分的罚款。

3
编写Java代码以检测JVM版本
目的是编写Java代码来检测JVM版本,该代码依赖于兼容性更改,副作用,错误和/或未定义行为,这些行为在一个版本中以某种方式起作用,而在另一版本中以另一种方式起作用。此外,该代码应至少具有一点可读性,而不会牺牲空格和清晰的变量名。 为了确保这一目标,确切的正式规则是: 该代码必须用Java编写,并输出运行它的JRE版本。 该代码不得使用任何专门用于检测Java版本或免费提供JDK或JRE版本的JDK或JRE API。 该代码不得使用反射。 该代码仅在Hotspot Java SE 5、6和7中才需要,但在其他JVM中也可以。 该代码不得在类路径中使用任何第三方库。 该代码不得启动任何其他进程,无论是否是Java。 该代码不得使用环境变量。 该代码不得搜索文件系统以查找预先存在的文件或文件夹。 该代码必须包含在一个文件中,并通过public static void main(String[] args)或调用public static void main(String... args)。 该代码不得使用JRE中存在的任何非公共API。 该代码在执行期间不得生成任何NoClassDefFoundError,NoSuchMethodError,ClassNotFoundException或NoSuchMethodException。 该代码应在与Internet或任何本地网络断开连接的系统中运行。 您应该提供一个解释,说明为什么它在一个版本中会以一种方式运行,而在另一个版本中会以另一种方式运行。 计分 衡量最佳解决方案的方法是max(n / s),其中n是在不违反任何这些规则的情况下检测到的不同Java版本的数量(至少是版本5、6和7),而s是词汇标记的数量在解决方案中。

10
升序矩阵
“升序矩阵”是整数(包括0)的无限矩阵,其中任何元素是最小的可用元素,之前尚未在相应的行和列上使用: | 1 2 3 4 5 6 ... --+---------------- 1 | 0 1 2 3 4 5 ... 2 | 1 0 3 2 5 4 ... 3 | 2 3 0 1 6 7 ... 4 | 3 2 1 0 7 6 ... 5 | 4 5 …
17 code-golf  math  matrix  programming-puzzle  code-golf  music  code-challenge  programming-puzzle  code-golf  fastest-code  code-golf  number  game  code-golf  combinatorics  code-golf  math  sequence  restricted-complexity  code-golf  number  random  code-golf  array-manipulation  code-golf  math  matrix  code-golf  number  sequence  counting  code-golf  math  number  sequence  popularity-contest  number  sequence  code-golf  music  code-golf  number  code-golf  ascii-art  arithmetic  code-golf  code-golf  number  code-golf  code-challenge  array-manipulation  code-golf  grammars  code-challenge  polyglot  code-golf  game  math  python  programming-puzzle  code-challenge  king-of-the-hill  code-challenge  fastest-code  primes  number-theory  number-theory  primes  fastest-code  factoring  popularity-contest  compile-time  code-golf  math 

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.