Questions tagged «code-challenge»

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

13
扩大比较链
与大多数语言不同,Python a<b<c会像在数学中一样进行评估,实际上是比较三个数字,而不是将布尔值a<b与进行比较c。用C(以及许多其他语言)编写此代码的正确方法是a<b && b<c。 在这个挑战中,您的任务是将这样任意长度的比较链从Python /直观表示扩展到如何用其他语言编写。 技术指标 您的程序必须要处理运算符:==, !=, <, >, <=, >=。 输入将具有仅使用整数的比较链。 不用担心一路比较的真实性,这纯粹是语法/语法上的挑战。 输入将没有任何空格,以防止答案因分割空格而使解析变得琐碎。 但是,您的输出可能只有一个空格,要么仅包含&&,要么包含比较运算符和&&,或者两者都不包含,但是要保持一致。 测试用例 Input Output --------------------------------------------------------------- 3<4<5 3<4 && 4<5 3<4<5<6<7<8<9 3<4 && 4<5 && 5<6 && 6<7 && 7<8 && 8<9 3<5==6<19 3<5 && 5==6 && 6<19 10>=5<7!=20 10>=5 && 5<7 && 7!=20 15==15==15==15==15 …
9 code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

30
给定int输入n,输出n * reversed(n)
给定一个整数n,打印输出n * reversed(n) reversed(n)是当您reverse的数字为时得到的数字n。 reverse(512) = 215 reverse(1) = 1 reverse(101) = 101 >>>>>>>> func(5) = 5*5 = 25 func(12) = 12*21 = 252 func(11) = 11*11 = 121 func(659) = 659*956 = 630004 最短的代码胜出! 排行榜 显示代码段 var QUESTION_ID=144816,OVERRIDE_USER=71625;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var …
9 code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

2
一百个最常用的单词
之所以写这个问题,是因为“ Thing Explainer”很有趣,并且给了我一个主意。 编写“使计算机做事的东西”,以读取/获取一组字母,数字和类似的东西"#%|?,True / 1如果所有单词都属于该集合,则返回。 如果所有单词都不属于该集合,请返回不属于该集合的单词。 在任何情况下都可以认为本网站是正确的。编写规则是为了遵守该站点上的规范。 例子: Truthy: 如果将第一条水平线上方的整个文本粘贴为输入,则代码应返回真实值。 以下几行应返回真实值(输入之间用分隔###) This returns "Hello, World!" ### tHiS rEtUrNs TrUe... ### Thing Explainer is a book written by a man. The man writes books with simple words. ### This set of stuff "#!^{>7( must return true 虚假的: 在以下示例中,输入和输出用分隔***。不同的测试用例用分隔###。 This code …
9 code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

1
通过交换相邻数字对填充数字的加扰二维数组进行排序
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 大小为n×n的二维数组由n * n个数字填充,从数字1开始。这些数字将按行升序排序;行的第一个数字必须大于上一行的最后一个数字(所有(1)中最小的数字将在[0,0]中)。这类似于15个难题。 例如,这是大小为n = 3的排序数组。 1 2 3 4 5 6 7 8 9 输入项 输入是加扰的数组。它的大小最大为n =10。n= 3的示例: 4 2 3 1 8 5 7 9 6 输出量 输出排序数组所需的交换列表。甲交换被定义如下:两个相邻的数字交换位置,水平或垂直; 不允许对角交换。 上面示例的示例输出: 交换4和1 交换8和5 交换8和6 交换9和8 所需的交换次数越少越好。计算时间必须可行。 这是另一个示例输入,其中n = 10: 41 88 35 34 76 44 66 …

1
具有精确终点和零终端速度的赛道变化
介绍 挑战是游戏赛道和这两个挑战的非常有趣的变体: 要Vectory!–矢量赛车大奖赛 编写赛车程序 挑战的根源在这里(德语):c't-Racetrack 这个挑战特别有趣(并且不同于上述两个挑战),因为它结合了巨大的搜索空间以及必须满足的一些确切条件。由于巨大的搜索空间,穷举搜索技术难以使用,由于确切的条件,近似方法也不易使用。由于这种独特的结合(加上物理学的基本直觉),这个问题令人着迷(无论如何,与赛车有关的一切都令人着迷;-) 挑战 请看以下赛马场(源代码): 您必须从头开始(120,180)并精确地完成操作(320,220)(德语为“ Ziel”),而无需碰触其中一堵墙。 汽车受以下形式的加速度矢量控制(a_x,a_y)-例如: (8,-6) (10,0) (1,9) 第一个数字是x向量的加速度,第二个数字是y向量的加速度。它们必须是整数,因为只允许使用网格上的整数点。此外,还必须满足以下条件: a_x^2 + a_y^2 <= 100, 这意味着在任何方向上的加速度都必须低于或等于10。 要查看其工作原理,请查看以下图片(源): 例如:从(120,180)您开始8以x方向和-6y方向加速。对于下一步,这是您的速度,您可以在其中添加加速度(10,0)以获得(物理上正确的)下一个合成运动(指向)(146,168)。合成运动是检查您是否触摸过其中一堵墙的关键。再次将下一个加速度矢量添加到当前速度以得到下一个运动,依此类推。因此,您的汽车在每一步都有一个位置和一个速度。(在上面的说明图中,蓝色箭头表示速度,橙色箭头表示表示加速,深红色箭头表示最终的运动。) 作为附加条件,在(0,0)终点时必须具有最终速度(320,220)。 输出必须是上述形式的加速度矢量列表。 获奖者是提供程序的人,该程序可以找到加速度矢量最少的解决方案。 Tiebreaker 另外,如果您可以证明这是一个最佳解决方案,以及这是否是唯一的最佳解决方案或是否有多个最佳解决方案(以及它们是哪种),那将是非常不错的。 如果您可以大致概述算法的工作原理并注释代码,以使我们能够理解它,那也很好。 我有一个程序可以检查任何给定的解决方案是否有效,我会给出反馈。 附录 您可以使用任何编程语言,但是如果有人使用R,我会特别高兴,因为我在日常工作中经常使用R,并且以某种方式习惯了它:-) 附录II 我第一次开始赏金计划-希望这可以使球滚动(或者更好:让汽车行驶:-)

2
在Prime中查找程序
让我们将数字0到94分配给95个可打印的ASCII字符: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 空格为0,!为1,依此类推,直到~94。我们还将为Tab(\t)分配95,将newline(\n)分配给96 。 现在考虑无限字符串,其第N个字符是已分配给第N个质数模97 的字符。我们将其称为S。 例如,第一个素数是2,而2 mod 97是2,并且将2分配给",因此S的第一个字符是"。类似地,第30个素数是113,而113 mod 97是16,并且分配了16 0,所以S的第30个字符是0。 S的前1000个字符如下: "#%'+-137=?EIKOU[]cgiosy $&*,0>BHJTV\bflrt~ #%1=ACGMOY_ekmswy"046:HNXZ^dlrx|!)-5?AKMSW]eiko{"&.28DFX^hntv|%+139?CEQ[]agmo{ $,6>HPV\`hnrz~+5ACMOSU_mqsw$(*.BFNX`djp~!'-5;GKQS]_eoq{}"48:>DJRX^tv '17=EQU[aciu 026<>DHJNZ\b#)/7ISaegkqy} $0:<@BFLXdlx~!'/3;?MQWY]ceku(.24LPR\hjt|!'-?EIKWamu$28<>BDNZ`fxz)+AGOUY[_gmwy"0:@LNRT^jl|~#')3;Meiow&(,4DFJRX^bnp%+-37=KQUW]agsy ,06BJPTn )15;=CYegw ".<FHLTZ`dfjpx|~#-/9AES]ikquw&48>FLPbjtz '1=KOU[]y{$,0>BJV\hlr%/1A[_amsw"(04<RTXZf!#)/59?AMQ]_ik{},2FV^bdhj '39CEIOQWacoy{$28<BJPVfrtx%+/7AIOUkqs}*.4FHR`dfp~!);?EGKQS_cw,8:>DJLRhjp %139EUW[aosu&>HNPZ\fhrxz#%/5=[egqy (:@LXZlrv|!35?MSWY]uw"(8@FL^nptz|!'17COacim &>BDHNP\`n+5;GU[eqsw}$*46:HNTX^`jl|'/AEKWY_ek&,:>FPXdvz| 7CIK[agu ,0NTZ`hnrt %)+1GMOSegkwy "<BHLT^~-/59;?AKY_cku{.24:X\dntz!'37=?EIOQ[]ms&*6D`fz~/7=AGU[akmw"*46@HT^vx|#)-5GQW]_eo{}&,28@FPVX^djt|39OQcgoy6>PTV`fhnr#+7IY_ams} (*0:HLdfvx!#-AEGKScioq},48>\^hjptz '-1=CKW[iu 6<HNPfn )/=ACIS[aek(6@BNXZjl~5GM]ouw(,24>FPV\dhnpz|'+179EIWims&*28<DHV\`nz~ =AY_eq}*046:LR^ Stack Exchange会将标签页变成空格,因此这是一个粘贴完标签的PasteBin。 挑战 查找S 的子字符串,该子字符串是使用您选择的语言的有效程序,该字符串输出前M个质数,每行按顺序输出一些正整数M。 例如,2是S的子字符串(它出现在多个位置,但是任何地方都可以),并且2是有效的CJam程序,其输出是 2 这是第一个M = 1个质数,每行依次。 同样,该字符串2N3N5可能是某个地方S的子字符串,并且2N3N5是一个有效的CJam程序,可输出 2 3 …

1
组合喹
背景 您刚刚了解了组合逻辑是什么。对各种组合器感兴趣的是,您花费了大量时间来学习它们。您最终偶然发现了这个特定的表达式: (S I I (S I I)) 您会注意到,在尝试将其简化为正常形式时,经过三个步骤,它会还原为自身: (S I I (S I I)) = (I (S I I) (I (S I I))) (1) = (S I I (I (S I I))) (2) = (S I I (S I I)) (3) 您决心找到具有该特征的其他表达方式,并立即开始对此进行操作。 规则 您可以使用以下组合器的任意组合: B f g x = …

3
受限内存优化
两个字符串之间的编辑(或Levenshtein)距离是将一个字符串转换为另一个字符串所需的最小单字符插入,删除和替换次数。如果两个字符串的长度均为n,则众所周知可以通过动态编程在O(n ^ 2)时间内完成。以下Python代码针对两个字符串s1和进行此计算s2。 def edit_distance(s1, s2): l1 = len(s1) l2 = len(s2) matrix = [range(l1 + 1)] * (l2 + 1) for zz in range(l2 + 1): matrix[zz] = range(zz,zz + l1 + 1) for zz in range(0,l2): for sz in range(0,l1): if s1[sz] == s2[zz]: matrix[zz+1][sz+1] = min(matrix[zz+1][sz] + …

5
找到最狡猾的素数
介绍 考虑以下过程:在某个底数b中取某个正整数n,并用右边数字底数中的表示替换每个数字。 如果右边的数字为0,请使用base b。 如果右边的数字是1,请使用带有0的一元符号作为计数标记。 如果右边没有数字(即您在那个位置),请循环到最高有效数字。 例如,让n = 160和b =10。运行该过程如下所示: The first digit is 1, the digit to the right is 6, 1 in base 6 is 1. The next digit is 6, the digit to the right is 0, 0 is not a base so use b, 6 in …

5
门,门,来吧,门下商店!
挑战是双重的: 编写一个程序来构建一扇门。ASCII,HTML或其他 使门功能正常。打开和关闭 通过输入或交互均可打开! 无功能门+5分。 只是一个可开门+10点。 互动门+15分。 花式门+20点。这意味着旋转,双向等 动画+20点。 <100个字符+50分。 -100点用于使用专门为绘图或动画设计的程序。 如果您有标准建议,请将其留在注释中。 非功能开门示例: <?php $idiots_in_room=true; if($idiots_in_room) { $count=20; $count2=7; for($i=0;$i<$count;$i++) { if($i==0) { echo str_repeat("-",10); if($i==0){echo ".";} echo "\n"; } elseif($i==9) { echo str_repeat("-",10); echo str_repeat("Â ",7)."o"."|"; echo "\n"; } elseif($i<=9) { echo str_repeat("-",1).str_repeat("Â ",8).str_repeat("-",1); echo ($i<5) ? str_repeat("Â ",$i*2)."\\" …

3
有损文本压缩
背景 一个字节可以表示的256个可能的字符中,大多数情况下仅使用其中的几个。我们不能以某种方式利用此优势,并通过消除对很少使用的字母的需要来使我们的文本文件更小? 在大多数情况下,许多字母没有任何价值,可以用更常见的字母代替。例如,在大多数情况下,小写字母“ L”,大写字母“ I”和数字“ 1”看起来几乎相同,因此可以对其进行合并。 几乎不需要大写字母,因此可以省去。解压缩/显示程序甚至可以自动将每个句子的首字母大写,常用名等。 规则 参赛作品的评选依据: 压缩率 解压缩后的可读性 将针对本文的纯文本版本测试条目:http://en.wikipedia.org/wiki/Babbage和随机选择的BBC新闻文章。 额外的分数将被授予;保留任何标记,解压后美化(即大写句子等)。 语言能力 您喜欢的任何对象,但必须在基本的* nix框上轻松编译(或解释)。

4
N皇后问题[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 5年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 在国际象棋中,女王可以移动到棋盘水平,垂直或对角线延伸的程度。 给定NxN大小的棋盘,请打印出N个皇后可以在棋盘上放置多少个位置,并且一举步就不能互相击中。

2
Python:我希望我是PHP [关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 有一个关于a夫的老故事,他从未对自己的外貌感到满意。他希望自己能成为太阳,所以他做到了。在云层的阻挡下,他希望成为-并且变成-云层。风吹起时,他希望自己成为风。在山上停下来之后,他希望成为一座山,因此成为了一座山。但是不久,他就被by夫砍死,并希望成为stone夫。 同样,您的任务是编写一个对其使用的语言永远不满意的程序。您的程序必须输出一组正则表达式替换项,才能将其转换为另一种语言。等等。 规则 用您选择的语言编写程序。 该程序应输出一系列至少两个部分。段是一堆文本,用分号分隔。但是,如果将一个分号包含在正则表达式中,则将其拆分会导致语法无效,因此不会分隔段。参见示例。 第一部分是要查找的正则表达式模式,第二部分是替换模式。第三个是另一个“查找”模式,第四个是“替换”模式,依此类推。 将正则表达式模式应用于程序。将第一段上的图案替换为第二段上的图案;将第三个模式替换为第四个模式,依此类推。 结果应该是使用其他语言的程序,该程序本身遵循规则2至4。 使用的语言必须形成无限的重复循环。 例如,Python-> PHP-> C ++-> Python-> PHP-> C ++-> Python-> ... 您的分数是周期的周期。领带被最短的初始代码长度打断。 在上面的示例中,分数为3。 在该循环的每个迭代中,不得使用任何语言多次。 对于规则5和7,兼容语言(C和C ++)以及同一语言的不同版本(Python 2和Python 3)被视为相同。 程序本身不需要重复。 在上面的示例中,第一程序和第四程序可能不同。 可以使用任何版本的regex,但所有程序都必须使用相同的版本。 每个程序的总输出不得超过100个字符。 每个输出必须包含实际更改程序的指令。即,循环中没有两个连续的程序可以相同。 例 Python-> Ruby-> Python-> ... print "uts;Z;rint;uts;Z(?=;Z);rint" 输出: uts;Z;rint;uts;Z(?=;Z);rint 这些段是: FIND …
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.