Questions tagged «code-golf»

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

4
言语之声
人们写了很多东西,使一件东西可视化为另一件。现在,我建议能够将字母翻译成音乐!您的工作是编写一个程序,该程序需要一个文本文件并输出一个声音文件,并将每个字母转换成一个特定的音符C3-C8。 免责声明-我实际上并不期望音乐听起来不错,但我希望对此感到惊讶。 技术指标 您将文件名作为字符串,并将BPM(每分钟心跳数)作为整数。 您使大写A成为笔记C3 然后按以下顺序为每个字符上半步: ABCDEFGHIJKLMNOPQRSTUVWXYZ ()-,;.'"abcdefghijklmnopqrstuvwxyz 是的,因为跨度过多,所以不会使用每个字符。 您以这种方式翻译文件中的每个字符 以给定的BPM将这些笔记放在一起作为四分音符 要么另存为声音文件(我猜Midi将是最简单的,但是一切正常)或播放它 任何理智的输入格式都可以 无标准漏洞 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 奖金 允许转置输出-50字节 通过获取多个文件,允许多个轨道相互叠加-75字节 将连续字母连接成一个较长的音符-50个字节 编辑:哇,我们的分数是负数。我将在周六宣布获胜者。
11 code-golf  music  audio 

10
警察和强盗
每个人都一直希望实施Conway的“人生游戏”。那很无聊!让我们去做警察和强盗吧! 您将有两支队伍:警察和强盗。每个小组有5名成员,每个成员有50个生命值。该程序将连续循环。每次迭代,都会发生以下情况: 对于每个团队,打印第一个字母(C代表警察,R强盗),空格,成员HP的空格分隔列表和换行符。这是球队的状态。两者都完成后,打印另一个换行符。例如,这可能是第一轮比赛: C 50 50 50 50 50 R 50 50 50 50 50 从1到10中选择一个随机数(包括1和10)。我们打这个电话N。如果N是偶数,则强盗输掉了这一回合。如果很奇怪,警察就会输。 从失败的团队中随机选择一个HP大于0的成员,并扣除NHP。成员的HP永远不会出现低于0的状态。 重新启动循环。 当一个团队的所有成员失去所有HP时,游戏结束。然后,如果警察获胜,将打印以下内容: C+ R- 如果强盗获胜: R+ C- 这是代码高尔夫球,因此最少的字符获胜。 这是Python 2中的示例实现: import random cops = [50]*5 robbers = [50]*5 while any(cops) and any(robbers): # print the status print 'C', ' '.join(map(str, cops)) print 'R', …
11 code-golf 

1
生成Davenport-Schinzel序列
背景 甲Davenport-Schinzel序列具有两个正整数参数d和n。我们将通过给定参数来表示所有Davenport-Schinzel序列的集合DS(d,n)。 考虑自然数的所有序列1到n,包容性,满足: 序列中没有两个连续的数字相同。 没有长度大于的子序列(不一定是连续的)d,它在两个不同的数字之间交替。 让L表示这样一个序列的最大长度(给定d和n)。然后,DS(d,n)是所有具有length的此类序列的集合L。 一些示例可能会有所帮助。让d = 4,n = 3。具有这些约束的最长序列可能具有L = 8。因此,以下成员是DS(4,3): [1, 2, 1, 3, 1, 3, 2, 3] 没有连续的相同数字,并且存在交替的length子序列4,但没有更长的子序列: 1 2 1 2 1 2 1 2 1 3 1 3 1 3 1 3 2 3 2 3 2 3 2 3 1 3 1 3 …

3
美元可分割性与完美变化
我的口袋里有15美元。同样,我在一家没有零钱的商店。在浏览时,我发现一个售价10美元(含税)的商品。我可以在不损失任何钱的情况下购买该物品吗? 在这种情况下,答案是肯定的。无论我的15美元如何分配(一个10和一个5,或三个5,等等),我总是会得到需要的10美元。 再举一个例子,我的口袋里有0.16美元。我还必须支付其他多少钱? Possible Divisions: 0.01, 0.05, 0.10 0.01, 0.05 x 3 0.01 x 16 Guaranteed Exact Change: 0.01, 0.05, 0.06, 0.10, 0.11, 0.15, 0.16 如果我口袋里有0.27美元怎么办? Possible Divisions: 0.01 x 2, 0.25 0.01 x 2, 0.05, 0.10 x 2 0.01 x 2, 0.05 x 3, 0.10 0.01 x 2, 0.05 …
11 code-golf 

6
精确传输Pi ...
继Pi的蒙特卡洛估计器之后,这一挑战是为常数Pi生成最短的代码。除了此处,您的代码必须永远输出pi的连续数字。 这是代码高尔夫,因此最短的提交(以字节为单位)获胜,只是它必须在合理的PC上在不到10秒的时间内输出前10,000位数字,并且永远不能终止。 Pi或Trig函数不能使用任何内置函数。 删除了对代码大小的硬限制。
11 code-golf  math  pi 

6
解决对角Burrows-Wheeler变换
介绍 在此挑战中,您将解决对角线Burrows-Wheeler变换。这是什么是对角Burrows-Wheeler变换的一般概述。要对消息进行编码,必须首先确保其长度为奇数(即5、7、9等)。然后,n通过来构建网格,n其中n消息的长度在哪里。第一行是原始消息。此后的每一行都是其上方的一行,但向左移动了1个字符,第一个字符向后移动。例如: Hello World ello WorldH llo WorldHe lo WorldHel o WorldHell WorldHello WorldHello orldHello W rldHello Wo ldHello Wor dHello Worl 然后,将NW到SE对角线上的每个字母放入一个新字符串中: Hello World H ello WorldH l llo WorldHe o lo WorldHel W o WorldHell r WorldHello d WorldHello e orldHello W l rldHello Wo (space) ldHello Wor …

3
使用箭头键浏览文本
背景 大多数(半途而废的)文本编辑器允许您使用箭头键导航文本。向上和向下允许您浏览行,同时左右移动一条线但也可以环绕。此外,如果该行短于光标的X位置,则光标会出现在该行的末尾,但如果您继续向上或向下移动,则会返回到相同的X位置。以下视觉说明可能会有所帮助: 运动实例 一个简单的文本示例可能看起来像这样。光标将插入在此文本中的两个字符之间或结尾。 ----- --- ------ let's put the cursor here: X----- --- ------ move down (v): ----- X--- ------ move left (<): -----X --- ------ v ----- ---X ------ v (notice how the X position of the cursor has been maintained) ----- --- -----X- ^ ----- ---X ------ …
11 code-golf 

4
识别三角形
计算图片中的三角形数量是大脑测试中常用的一项任务。您将获得一张包含由三角形组成的形状的图片。然后,您必须在图片中找到所有可能的三角形。 任务 系统会以您选择的格式为您提供行列表。然后,您必须输出在其中找到的三角形的列表 输入值 您会得到行的列表,每行都有四个整数坐标(例如x1 y1 x2 y2)。您可以选择输入格式,只要记录清楚即可。例子: 0 4 8 1 0 4 9 5 8 1 9 5 2 8 0 4 9 5 2 8 [[0, 4, 8, 1], [0, 4, 9, 5], [8, 1, 9, 5], [2, 8, 0, 4], [9, 5, 2, 8]] 这是与图像相同的输入: 另一个带有交叉点(仅一种格式以节省空间): …

3
解决2x2特征系统
对于那些具有线性代数背景的人来说,挑战就这么简单:确定给定复数2x2矩阵的特征值和特征向量。您可能会跳过I / O详细信息等的挑战。对于那些需要对本征系统进行一些复习的人,请继续阅读。 背景 矩阵A的特征方程定义为 det| A - λI | = 0 其中λ是复数(标量)参数,I是单位矩阵,det | ... | 是决定因素。左侧求值为λ的多项式,即特征多项式,在2x2矩阵的情况下,该多项式是二次的。这个特征方程的解决方案是特征值的甲,我们将表示为λ 1和λ 2。 现在,特征向量 v 我的一个满足 A vi = λi vi 对于每一个λ 我,这给你两个方程的两个未知数的系统(的成分v 我),它可以很容易地解决。您会注意到系统实际上是未指定的,特征向量的大小不是由等式确定的。通常,我们将希望对特征向量进行归一化,即√(| x | 2 + | y | 2)= 1,其中x和y是向量分量,| x |。2是X乘以其复共轭。 注意,特征值可以是简并的,即,λ 1 =λ 2。在这种情况下,您可能无法满足具有两个线性独立特征向量的单一方程组。 挑战 给定具有复杂元素的2x2矩阵,请确定其两个(可能相同)特征值和每个特征值的归一化特征向量。结果数字必须精确到至少3个(十进制)有效数字。您可以假定任何矩阵元素的实部和虚部都在[-1,1]范围内。 您可以编写函数或程序,通过STDIN,命令行参数,提示或函数参数进行输入。您可以将结果输出到STDOUT,对话框或作为函数返回值。 您可以使用任何方便(但明确)的字符串或列表格式进行输入和输出。您还可以在成对的浮点数或复杂类型之间进行选择,以表示各个数字。 您不得使用内置函数来求解本征系统(如Mathematica …

11
二进制加密
这是基于xkcd#153的。 制作一个带有2个参数的程序或命名函数,每个参数是一个字符串或字节或字符的列表或数组。第二个参数将仅包含从中提取的字符lrfu(或等效的ASCII字节)。应该将其解释为要对由第一参数表示的位序列执行的一系列指令。 执行的处理必须等同于以下内容: 将第一个参数转换为通过串联每个字符的位组成的单个位串(解释为7位ASCII,8位扩展ASCII或标准Unicode编码之一)。例如,如果第一个参数是"AB"那么这将是一个10000011000010(7位),0100000101000010(8位或UTF-8),00000000010000010000000001000010或01000001000000000100001000000000(UTF-16在这两个字节排列顺序)等。 对于第二个参数中的每个字符,依次执行相应的指令: l将位串左移一位。例如10000011000010变为00000110000101。 r将位串右移一位。例如10000011000010变为01000001100001。 f翻转(或反转)位串中的每个位。例如10000011000010变为01111100111101。 u反转位串。例如10000011000010变为01000011000001。 将位字符串转换为ASCII字符串,每位使用一个字符。例如10000011000010变为"10000011000010"。这是因为并非所有7/8位的集合都分配有一个字符。 示例(在Python中): >>> f("b", "rfu") 01110011 它变成"b"8位ASCII二进制表示形式01100010,向右旋转(00110001),翻转每个位(11001110),然后反转(01110011)。 灵活性 其它字符可以是用来代替字符l,r,f,和u,但他们必须清楚地记录在案。 计分板 感谢@Optimizer创建以下代码段。要使用,请单击“显示代码段”,滚动到底部,然后单击“►运行代码段”。 显示代码段 var QUESTION_ID = 45087; var answers = [], page = 1;var SCORE_REG = /\d+(?=[^\d&]*(?:<(?:s>[^&]*<\/s>|[^&]+>)[^\d&]*)*$)/;function url(index) {return "http://api.stackexchange.com/2.2/questions/" + QUESTION_ID + "/answers?page=" + index + "&pagesize=100&order=desc&sort=votes&site=codegolf&filter=!t)IWYnsLAZle2tQ3KqrVveCRJfxcRLe";}function getAnswers() {$.ajax({url: url(page++),method: "get",dataType: …

5
北方大白!
h! 您知道,我们加拿大人的问题是,有时候,经过漫长的驼鹿狩猎和大坝修复,我们忘记了回到小屋的路!如果我们的便携式笔记本电脑(总是在我们身边)有某种方法可以指引我们回家,那不是很好吗?好吧,很久以来,人们就知道,如果您在计算机上显示指南针,则在向北指向时它将是最亮的。我想对此进行测试,但是在下一次旅行时,我需要一个紧凑的程序来携带我的硬盘,因为我的硬盘上已经装满了枫糖浆配方(有些不能)。因此,您的任务是设计一个程序,该程序在运行时会保存或显示以下罗盘的图像: 字母可以使用不同的字体。请记住,最少是最好的,所以最低的字节数会获胜! 技术指标 色彩 浅紫色:#9999FF 灰色:#E5E5E5 长度和角度 角度a= 45° 角度b= 90° 长度c= 250单位 长度d= 200个单位 长度e= 40个单位 长度f= 45单位 澄清说明 该文本可以是任何适当的字体,在适当的地方表示该文本对于一般的受过良好教育的人是可读的。 文字必须与尖峰最接近的位置相距3个单位,不得触摸玫瑰,并且必须直立 如果从玫瑰的中心画一条线,穿过尖峰的终点并超出该线,则它应以+/- 2单位的精度穿过文本的中心(文本必须沿轴居中a,其中,a从页面的中间,通过秒杀结束,并延伸超出) 每个字符必须至少为15个单位乘15个单位,并且x / y或y / x比例不超过2:1(无拉伸-可读性) 不应绘制穿过较长尖峰的暗圆和在参考图像上最靠近中间的文字。 图片必须为正方形,且至少为400px x 400px 禁止在源中压缩图像 单位必须至少为1像素

4
超级广场雨
Scream™冬季特卖活动已经开始,您只是在狂奔极简动作游戏Super Square。玩完游戏后,您会意识到,要么游戏太难了,要么真的很糟糕。特别是,这种“雨”模式似乎每次都会让您受益…… 沮丧的是,您决定给自己一个不同的挑战:用ASCII艺术画雨图! 输入值 输入是一个单个正整数n,表示通过STDIN或函数参数指定的模式大小。 输出量 输出为指定大小的降雨模式,以字符串形式返回或通过STDOUT打印。整个图像之前或之后的前导或尾随空格都可以。此外,图像不必齐平到屏幕左侧,但必须清晰可辨。 这里是n = 10: ................... | ----------------- | | ............... | | | ------------- | | | | ........... | | | | | --------- | | | | | | ....... | | | | | | | ----- | | | | …

8
在银行打高尔夫球
我们的新银行需要一个柜员交易系统,但是有一个问题。我们的服务器上只剩下几百个字节的空间,因此您将必须编写非常紧凑的代码。 数据库 幸运的是,我们的数据库非常简单(它是由银行行长的小学生儿子建立的),到目前为止,我们只有几个客户。 文件Bank.data是: Account Firstname Lastname Balance Date 123 Maree Jones 346.22 2014-12-13 035 Thomas Breakbone 3422.02 2015-01-03 422 Henrietta Throsby-Borashenko 277847.74 2014-11-21 501 Timmy Bongo 7.95 2014-11-04 105 William Greene 893.00 2015-01-06 300 Mary Galoway 1228.73 2014-12-28 203 Samantha Richardson 2055.44 2014-11-01 151 Bruce Wayne 956119.66 2014-10-09 166 …
11 code-golf 

7
最长反向回文DNA子串
您可能知道,DNA中有四个碱基-腺嘌呤(A),胞嘧啶(C),鸟嘌呤(G)和胸腺嘧啶(T)。通常A与之结合T并C结合G,形成DNA双螺旋结构的“梯级” 。 我们将基数的补语定义为它所键合的基数-即Ais T的补语,Tis A的补语,Cis G的补语和Gis 的补语C。我们还可以将DNA字符串的补码定义为每个碱基都互补的字符串,例如GATATCis 的补码CTATAG。 由于DNA的双链结构,一条链上的碱基与另一条链上的碱基互补。但是,DNA具有方向,并且DNA转录在两条链上以相反的方向发生。因此,分子生物学家通常对DNA字符串的反向补体感兴趣-实际上是字符串的反向补体的反义。 为了扩展前面的示例,的反向补码GATATC是CTATAG向后的,因此GATATC。您可能已经注意到,在此示例中,反向补码等于原始字符串-我们称此类字符串为反向回文。* 给定一串DNA,您能找到最长的反回文子串吗? *我使用“反向回文”(Rosalind)一词来区别回文的通常含义。 输入值 输入将是仅包含ACGT大写字符的单个字符串。您可以为此挑战编写函数或完整程序。 输出量 您可以选择通过打印还是返回输出(后一种选择仅在功能情况下可用)。 如果有唯一的解决方案,则程序应输出输入字符串中最长的反向回文子字符串。如果存在多个解决方案,则可以输出其中任何一个,也可以全部输出(您的选择)。如果选择全部输出,则可以复制。 确保输入的解长度至少为2。 工作的例子 ATGGATCCG -> GGATCC 反向补码GGATCC本身(GGATCC --complement--> CCTAGG --reverse--> GGATCC),GGATCC反向回文也是如此。GATC也是一个反向回文,但它不是最长的。 测试用例 AT -> AT CGT -> CG AGCA -> GC GATTACA -> AT, TA ATGGATCCG -> GGATCC CCCCCGGGGG -> CCCCCGGGGG ACATATATAGACT -> ATATAT, …

1
保持旅行愉快!
挑战 我在Marks and Spencers周围走来走去,发现他们在商店周围随机放置了空调。为了保持凉爽,我想知道在不离开空调装置太长时间的情况下在整个商店中移动的最简单方法是什么。 在给定地图的情况下,您必须找到一种在整个地图上行驶的方法,以保持与空调单元的距离尽可能短(即使AC单元位于墙壁的另一侧)。 地图 该地图可以按照您喜欢的任何方式提供,并使用以下符号: + is a corner of a wall | is a east/west facing wall - is a north/south facing wall X is an air conditioning unit S is the start and end point 映射示例为: +------S---+ | X | | ---+-+ 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.