Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

5
Stack Exchange网站的图标上有多少个字符?
给定尚未设计自己的Stack Exchange网站的名称,请确定其图标上有多少个ASCII字符(非ASCII字符将单独计数)。您的代码应区分以下4种情况: 1个字符: Astronomy Beer Freelancing Health History Law Music: Practice & Theory Parenting The Great Outdoors Writers 2个字符: 3D Printing Amateur Radio Biblical Hermeneutics Bitcoin Board & Card Games Buddhism Chinese Language Coffee Community Building Computational Science Computer Graphics Data Science Earth Science Ebooks Economics Emacs Engineering Expatriates French …

7
希尔伯特-求矩阵
受启发 问题 将2D图像展开为1D字符串的另一种方法是使用 希尔伯特曲线。 该曲线有很多版本,具体取决于计算时使用的迭代次数。下面是从一阶到五阶的希尔伯特曲线示例。 计算该曲线的方法如下。首先,我们将一阶希尔伯特曲线定义为图中所示的那条曲线(n = 1的曲线),以使其适合1x1的正方形。然后,我们制作该曲线的四个副本,将它们间隔为4x4正方形,以便它们都向左侧呈现“凹面”。然后,我们翻转两条最左侧的1曲线,以使顶部的一个凹面朝向顶部,而底部的凹面朝向底部。最后,我们连接相邻的希尔伯特曲线的角。如果要获得(n + 1)阶曲线,我们只需要对四个n阶曲线重复该过程即可。我们可以在此处看到该过程的可视化(我还将添加一张详细描述该过程的图像) 您在此挑战中的任务是沿着该矩阵的最低阶希尔伯特曲线展开整数矩阵。 为简单起见,我们将从矩阵的左上角开始绘制曲线。 您可以将输入作为整数列表的列表来接收,其中每个子列表代表矩阵的一行。 您可以假定输入将是一个方矩阵(n * n)。 例如: 输入: [[ 1, 2,] [ 3, 4 ]] 输出: [ 1, 2, 4, 3 ] 由于我们使用的是如图所示的一阶希尔伯特曲线 输入: [[ 1, 2, 3, 4, ] [ 5, 6, 7, 8, ] [ 9, 10, 11, …

30
奇数平方和小于N
写一个程序或函数来输出的总和奇数平方数(OEIS#A016754)小于一个输入 n。 序列中的前44个数字是: 1, 9, 25, 49, 81, 121, 169, 225, 289, 361, 441, 529, 625, 729, 841, 961, 1089, 1225, 1369, 1521, 1681, 1849, 2025, 2209, 2401, 2601, 2809, 3025, 3249, 3481, 3721, 3969, 4225, 4489, 4761, 5041, 5329, 5625, 5929, 6241, 6561, 6889, 7225, 7569 序列的公式为a(n) = ( …

20
波动范围
给定一个带数字的列表,输出如下范围: 输入:[0, 5, 0]将变为[0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0]。 这是通过数组映射范围,因此我们首先必须创建范围[0, 5],即[0, 1, 2, 3, 4, 5]。之后,我们使用5来创建range [5, 0]。附加在我们之前的范围中,这使我们: [0, 1, 2, 3, 4, 5, 4, 3, 2, 1, 0] 让我们观察一下两个彼此相邻的相同数字的测试用例: [3, 5, 5, 3], ranges: [3, 5] = 3, 4, 5 [5, 5] = 5 …

4
在无限制的字符串中找到缺失的数字
面临的挑战是在无界整数字符串中标识丢失的数字。 系统会为您提供一串数字(有效输入将匹配正则表达式^[1-9][0-9]+$)。该字符串表示整数序列。例如,1234567891011。序列中的所有数字都在范围1和2147483647包容性。 该序列是一系列数字,其中每个数字都比其前身大一个。但是,此序列可能包含一个且序列中只有一个缺失的数字。给定的字符串也可能不包含序列中的缺失数字。该字符串将始终包含序列中的至少两个数字。 该代码必须输出或返回缺失值,或者0(0如果没有缺失值,则该值是-而不是伪造的值)。 以下是有效的输入及其输出/返回: input output actual sequence (for refrence) 123467 5 1 2 3 4 _ 6 7 911 10 9 __ 11 123125126 124 123 ___ 125 126 8632456863245786324598632460 8632458 8632456 8632457 _______ 8632459 8632460 123 0 1 2 3 8632456863245786324588632459 0 8632456 8632457 8632458 8632459 尽管所有这些都被描述为输入的“字符串”,但如果该语言能够处理任意大的数字(dc并且mathematica,我正在看你们两个),则输入可能是任意大的数字,而不是字符串,如果这样代码更容易。 …

12
我什么时候可以乘坐二进制汽车?
我注意到今天上班时,我的汽车的里程表在101101。这是一个很酷的数字,因为它是二进制的(和回文,但这并不重要)。现在,我想知道下一次什么时候可以读取二进制里程表。开车时我无法读取里程表,因为这样做很危险,所以上班或回家时必须使用二进制格式。 往返办公室的交通确实很差,所以我每天必须走不同的路线。 出于挑战的目的,一天是往返行程,从我上下班开始。 您需要获取里程表的初始读数和10个元素的序列,以表示每种方式的里程数。应当重复此过程,直到获得二进制里程表的读数。然后,您应该输出直到达到二进制读数所需的天数。 路线里程数和里程表读数均为正整数。天数将是x或x.5,因此您的天数输出需要支持半天浮点数。如果天数是整数,则无需输出.0。里程表最终将始终达到二进制状态。 任何形式的输入/输出都是可以接受的,并且不允许出现标准漏洞。 测试用例: 101101, [27, 27, 27, 27, 27, 27, 27, 27, 27, 27] == 165.0 1, [13, 25, 3, 4, 10, 8, 92, 3, 3, 100] == 22.5 2, [2, 3, 1, 2, 7, 6, 10, 92, 3, 7] == 2.0

1
解决0h n0板
0h n0是一个非常简单且有趣的游戏,有点像Sudoku或minesweeper。 游戏规则 (如果可以的话,我建议您在游戏中使用该教程,它非常简单实用) 难题始于n * n一块包含一些固定零件和一些空单元的木板,求解器必须找到一种方法来用零件填充空单元并满足固定零件所施加的所有约束。以下是我们将使用缩写的作品类型: # 红色部分(阻止显示蓝色部分) O 蓝片 . 空位置 number编号为蓝色的部分(number是一位数字> 0) 所有编号的块都必须看到与数字完全相同的蓝色块。例如: #1O#O ...O. 该1作品只能看到另一个蓝色作品。 作品如何彼此见面 如果两个蓝色块位于同一行或同一列中,并且它们之间没有红色块,则它们可以彼此看到。例: (S是O一块可以看到,X无法看到的位置) S S X#SOSS # X 每个蓝色部分必须至少看到另一个蓝色部分: #O# 无法正常工作,但是: #OO 要么: ### 做工作。 演示板解决 .1.. ..1. .... 22#2 右下2只能在自身上方看到,因此它们必须为蓝色,右上角必须为红色。 .1.# ..1O ...O 22#2 既然1已填充,我们就可以用红色块包围它。 .1## .#1O ..#O 22#2 左上角1现在只能看到一个方向,因此我们可以填写它。 …

13
中间方方法
介绍 的中间方法用于伪随机数的产生。但是,这在实践中不是一个好方法,因为它的周期通常很短并且存在一些严重的缺点。这是如何运作的?让我们举个例子: 对于种子,我们选择123456: Seed 123456 种子平方(种子×种子)等于: Seed² 15241383936 我们以6位数字开头。这意味着种子平方应交付12位数字。如果不是这种情况,则添加前导零以补偿: Seed² 015241383936 然后,我们取数字的中间部分,其大小与种子的大小相同: Seed² 015241383936 ^^^^^^ 这是我们的新种子:241383。我们重复与上述相同的过程。我们得到以下内容: 0: 123456 015241383936 | | 1: 241383 058265752689 | | 2: 265752 070624125504 | | 3: 624125 389532015625 | | 4: 532015 283039960225 | | 5: 039960 001596801600 | | 6: 596801 这会持续一段时间……现在我们知道中间平方方法是什么,让我们开始挑战吧: 任务 …

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

6
迷信程序设计
您的挑战非常简单。给定年份作为输入,请根据公历打印该年中包含13号星期五的所有月份。请注意,尽管公历直到1582年才引入,但为简单起见,我们将其自0001 AD开始使用。 规则 允许使用完整的程序或功能。 您可以将输入用作STDIN的函数参数,也可以用作命令行参数。 不允许您使用任何日期和时间内置函数。 您可以放心地假设输入将是有效年份。如果输入小于1,不是有效的整数,或者大于您的语言本机数字类型,则不必处理此操作,并且会得到不确定的行为。 只要指定标准,输出就可以是数字,英文或其他任何人类可读的格式。 确保您考虑了leap年。请记住,leap年并不是每4年发生一次! 提示 由于有很多不同的方法可以解决此问题,因此我不想告诉您如何执行此操作。但是,从何处开始可能会造成混乱,因此这里有几种可靠的方法来确定从日期开始的星期几。 康威的世界末日算法 选择一个星期几为已知日期的开始日期,例如0001年1月1日星期一,找出两天之间的距离,然后将该数字设为mod 7。 高斯算法 高斯算法的一种变体 这些方法中的任何一种 样品IO 2016 --> May 0001 --> 4, 7 1997 --> Jun 1337 --> 09, 12 123456789 --> January, October 像往常一样,这是代码高尔夫球,因此存在标准漏洞,并且最短的答案会获胜。 显示代码段 var QUESTION_ID=69510,OVERRIDE_USER=31716;function answersUrl(e){return"http://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"http://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 …
19 code-golf  date  time 

20
计算数组的maxmax
考虑阵列x诸如[1 5 3 4]和一个数n,例如2。写所有的长度- n滑子阵:[1 5],[5 3],[3 4]。让极小极大阵列的被定义为最小的滑动块的最大值的。所以在这种情况下,这将是最小的5, 5, 4,这是4。 挑战 给定一个数组x和一个正整数n,输出如上定义的minimax。 该数组x将仅包含正整数。n将始终至少为1,并且最多为x。 计算可以通过任何过程来完成,而不必如上所述。 代码高尔夫,最少的字节数获胜。 测试用例 x,n,导致 [1 5 3 4], 2 4 [1 2 3 4 5], 3 3 [1 1 1 1 5], 4 1 [5 42 3 23], 3 42

15
超立方体元素
编写一个函数或程序,输出一个N维超立方体的每种类型的元素(顶点,边,面等)的数量。 例如,三维立方体具有1个像元(即1个3维立方体),6个面(即6个2维立方体),12个边(即12个2维立方体)和8个顶点(即8个0维)立方体)。 有关Hypercube元素的更多详细信息,请参见此处 您还可以查看以下OEIS序列。 输入项 您的代码将采用大于或等于0的整数作为输入(通过STDIN或函数参数或类似的东西),它是超多维数据集的维。 从理论上讲,您的代码必须对大于等于0的任何输入都起作用,而不考虑内存和时间问题(即,如果输入很大,速度和潜在的堆栈溢出对于您的答案来说就不是问题)。作为测试用例提供的输入将不超过12。 输出量 您将输出从“最高维度”元素开始的超立方体的所有元素的列表。例如,对于一个立方体(输入= 3),您将输出列表[1,6,12,8](1个像元,6个面,12个边,8个顶点)。 输出中列表的格式相对自由,只要看起来像列表即可。 您可以将结果输出到STDOUT或从函数返回。 测试用例 Input = 0 Output = [1] Input = 1 Output = [1,2] Input = 3 Output = [1,6,12,8] Input = 10 Output = [1, 20, 180, 960, 3360, 8064, 13440, 15360, 11520, 5120, 1024] Input = 12 …

20
写一个Metaquine
metaquine是一个不是quine的程序,但是当以相同语言作为程序运行时,其输出是quine。 这项挑战的目标是编写一个metaquine。这是代码高尔夫球,因此最短的代码获胜,最早的答案用作决胜局。请注意,由于quine的定义,只接受完整程序。 规则 仅接受真正的奎因。也就是说,您需要将整个源代码原样打印到STDOUT,而无需: 直接或间接阅读您的源代码。 依靠REPL环境,该环境仅评估并打印您提供给它的每个表达式。 依靠在某些情况下仅能打印出源代码的语言功能。 使用错误消息或STDERR编写全部或部分的藜。(您可以将内容写到STDERR或产生警告/非致命错误,只要STDOUT是有效的Quine,并且错误消息不属于其中即可。) 源代码完全由文字(无论是字符串文字,数字文字等)和/或NOP组成。 为了有效,可以在输出中忽略任何不可抑制的输出(例如版权声明,启动/关闭消息或尾随换行符)。 例 忽略禁止纯文字程序和内置quining的规则,这在严重中将是一个metaquine: "Q" 该程序由单字符串文字组成,该字符串"Q"在输出中隐式打印。Q运行输出()时,它是一个quine(Q是内置的quine函数)。

3
素数的映射
最近,我发现从正整数到有限的嵌套序列的双射映射f。挑战的目的是用您选择的语言来实现它。 映射 考虑一个号码ň与因素在那里。然后: 例如: 规则 您可以编写完整的程序或函数来执行此任务。 输出可以是可识别为序列的任何格式。 允许用于素数分解,素数测试等的内置。 不允许出现标准漏洞。 您的程序必须在10分钟内完成我机器上的最后一个测试用例。 这是代码高尔夫球,所以最短的代码获胜! 测试用例 10: {{},{{}},{}} 21: {{{}},{},{{}}} 42: {{{}},{},{{}},{}} 30030: {{{}},{{}},{{}},{{}},{{}},{}} 44100: {{{{}}},{{{}}},{{{}}},{},{}} 16777215: {{{{}}},{{}},{{}},{},{{}},{{}},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{{}}} 16777213:pastebin

1
确定Connect 4的获胜者
系统会为您提供部分填充的Connect 4网格(7x6)。 O X O X X O X O O X O X O X X O X X X O O X O O O X X O X (输入可以一维或二维数组以及字母或数字等形式给出。) 假使,假设 X开始游戏。 还没有人赢。 玩家可能直到现在还没有打得很好,但是从现在开始,他们都将采用最佳策略。 输入网格没有故障。 您必须输出一个值来指示哪个玩家获胜(或平局) 挑战高尔夫挑战赛;所以最短的代码胜出。您的程序不必在合理的时间内实际计算输出,但是您应该能够证明在有限的时间内可以正确获得输出。

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.