Questions tagged «code-golf»

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

4
Rosetta Stone挑战:基因定位
Rosetta Stone挑战赛的目标是用尽可能多的语言编写解决方案。炫耀您的编程多语言! 挑战 您面临的挑战是实现一种程序,该程序将以尽可能多的编程语言使用交叉频率绘制一些基因。您可以使用您的语言具有的任何标准库函数,因为这主要是语言展示。 什么是“基因映射”? 基因定位是定位基因在染色体上相对位置的过程。这是通过测量基因对的交叉频率来完成的,该频率等于该基因对不一起遗传的后代的百分比。距离以地图单位测量,其中一个地图单位等于交叉的百分之一。例如,如果基因C和D的交叉频率为11%,则基因C与基因D的距离为11个图谱单元。 用多对基因进行基因定位,以确定它们的相对顺序。例如,数据(A,B,12) (D,B,7) (A,D,5) (D,H,2) (H,B,9)产生以下地图: A..H.D......B 您可能已经注意到这B......D.H..A也是有效的地图。这是正确的,因为不可能在反光镜之间进行区分。您的程序可以选择输出哪一个。尽管输入可能不会包括所有可能的对,但总会有足够的信息来重建整个地图(因此,有效输出永远不会超过2个)。此外,数字总是可以计算出来的(与实际生物学不同),这意味着您不会拥有(A,B,3) (B,C,4) (A,C,13)。 输入值 输入将以数字开头,n然后是基因列表(大写字母)。然后将出现n三重数据。每个集合将由一对基因及其交叉频率(距离)组成。 3,P,H,I P,H,3 H,I,1 P,I,4 7,A,B,G,Q,U B,Q,4 A,B,10 G,U,13 Q,U,10 A,G,9 G,Q,3 A,Q,6 输入不是严格定义的,因为不同的语言可能会限制可行的内容。例如,您可以将定界符更改为逗号和换行符以外的其他内容。输入格式很大程度上取决于您。 输出量 输出将是基因图谱的再现。它将由以句点隔开的基因(大写字母)组成,以便准确描绘距离。这是上述示例的输出。 P..HI *or* IH..P BG..Q.....A...U *or* U...A.....Q..GB 这也不是完全严格的要求。例如,您可以使用句点以外的其他东西,例如逗号或空格。 客观取胜标准 关于客观的获胜标准,这是:关于谁可以写得最短的条目,每种语言都是一个单独的竞赛,但是总的获胜者将是赢得这些子竞赛中最多的人。这意味着以多种不同寻常的语言回答的人可以获得优势。当一种语言中有多个解决方案时,代码高尔夫通常是决胜局:程序最短的人会为该语言赢得赞誉。 规则,限制和注释 您的程序可以用2013年12月20日之前存在的任何语言编写。由于我不太可能进行测试,因此我还必须依靠社区来验证一些使用一些较不常见/深奥的语言编写的回复。他们。 现任排行榜 本节将定期更新以显示语言的数量以及每种语言的领先者。 自动热键(632)-Avi dj(579)-魔方 当前用户排名 AVI(1):AutoHotkey(632) 魔方(1):dj(579)

9
在Stern-Brocot树中找到分数的位置
所述的Stern-Brocot树是级分的二进制树,其中每个级分是通过将两个级分在上面的水平相邻它的分子和分母获取。 它以“端点分数” 开头0/1并1/0作为“端点分数”生成,然后通过将这些分数的分子和分母加在一起,在每个连续的分数对之间放置一个分数进行迭代,如下所示: 0. 0/1 1/0 1. 0/1 1/1 1/0 2. 0/1 1/2 1/1 2/1 1/0 3. 0/1 1/3 1/2 2/3 1/1 3/2 2/1 3/1 1/0 4. 0/1 1/4 1/3 2/5 1/2 3/5 2/3 3/4 1/1 4/3 3/2 5/3 2/1 5/2 3/1 4/1 1/0 在船尾-Brocot树(的每次迭代n次迭代),有2^n + 1该序列中的元素,这是我们可以从归于一小部分0/2^n到2^n/2^n。每次新迭代都只是在每对连续分数之间插入一个分数“ halfway”。 这使得Stern-Brocot树在正有理数与0到1之间的二进制分数之间是一对一的映射,从而也证明了这两个集合具有相同的基数。 您的任务是编写一个程序或函数,给定最低有理数的分子和分母,确定与该分数在Stern-Brocot树中的位置相对应的二进制分数。 …

6
Chess960位置生成器
语境 Chess960(或Fischer Random Chess)是前世界象棋冠军Bobby Fischer发明和倡导的国际象棋变体,于1996年6月19日在阿根廷布宜诺斯艾利斯公开宣布。它采用与标准国际象棋相同的棋盘和棋子;但是,这些棋子在棋手本位上的起始位置是随机的 规则 与标准国际象棋一样,白色棋子排在第二位 所有剩余的白色棋子随机放置在第一等级 主教必须放在相反颜色的正方形上 国王必须放在车厢之间的正方形上。 黑棋子的棋子与白棋子的棋子相同且相对。 来自:http : //en.wikipedia.org/wiki/Chess960 对于所有想发布答案的人... 您必须制作一个Chess960位置生成器,它能够按照上述规则随机生成960个位置中的一个(它必须能够输出960中的任何一个,不接受对一个位置进行硬编码!),并且您只需要输出白色等级一张。 输出示例: rkrbnnbq 哪里: 国王 女王 b主教 n骑士 鲁克 这将是代码高尔夫,而决胜局将是投票。

1
识别编译器
挑战 给您提供了一个函数compile(s: String): Integer,该函数将返回0是否s可以编译以及0是否失败(返回的代码并不重要)。 问题是您不知道该函数使用哪种语言,因此您可以通过向该函数提供少量代码片段并观察其返回内容来弄清楚该函数是什么。好消息是,一组科学家在您之前进行了尝试,并将清单缩小到了C,C ++,C#,Java和JavaScript(这是我能想到的仅有的使用相似语法的唯一广泛使用的语言)。 规则 通用代码高尔夫球规则适用。 没有严格的输出格式。只要它是可读和可理解的就可以。 如果这5种语言对您来说还不够,那么您可以添加自己的收藏夹,您将获得额外的星星(★)奖励(不做任何事情)。 注意1:编译器采用最新的标准,无论其设计用于哪种语言。 注2:我知道JavaScript不会编译,但是经过一些解析过程。如果它是有效的JavaScript代码,那么它将通过
11 code-golf 

12
输入“你好,世界!”
编写一个程序,生成类型为的键盘事件Hello, World!。 它不必独立于平台。 它不能保持任何键被按下。例如,在Java中,Robot.KeyPress('H');将保持H按下状态,因此必须使用Robot.KeyRelease('H'); 您可以假设在运行程序时大写锁定处于关闭状态。大写字母可以通过按住Shift并按下字母或切换大写字母来键入。对于!,您可能必须使用shift方法。 最短的代码获胜。

7
多边形中的孔数
问题:计算连接的多边形中的孔数。通过以下条件保证多边形的连通性:输入三角剖分中的每个三角形与另一个三角形至少共享一侧,并且只有一组这样连接的三角形。 输入是平面中L的n点的列表T,以及包含来自的三元组的列表0...n-1。对于T元组中的每个项,(t_1,t_2,t_3)代表L三角剖分中三角形的三个顶点(来自列表)。请注意,这是“多边形三角剖分”意义上的三角剖分,因此,在T该交叠中永远不会有两个三角形。另一个规定是您不必清理输入内容,L并且T不包含任何重复项。 示例1:如果L = {{0,0},{1,0},{0,1},{1,2}},T = {{0,1,2},{1,2,3}}则指定的多边形的孔数为0。 示例2:如果L = {{0,0},{1,0},{2,0},{2,1},{2,2},{1,2},{0,2},{0,1},{.5,.5},{1.5,.5},{1.5,1.5},{.5,1.5}},T = {{5,6,11},{5,10,11},{4,5,10},{3,8,10},{2,3,9},{2,8,9},{1,2,8},{0,1,8},{0,8,11},{0,7,11},{6,7,11},{3,4,10}}则面输入将导致输出为2。 任务是编写最短的程序(或函数),该程序以L和T作为输入并返回孔的数量。“优胜者”将被认为是字符数最少的条目(暂定结束日期为6月1日)。 输入格式样本(请注意0索引): 0,0 1,0 0,1 1,2 0,1,2 1,2,3

10
输出代码大小的Lorem Ipsum
输出与您的代码相同长度的Lorem ipsum! 规则: 代码不能与输出相同 没有压缩库 两周中最短的程序获胜 没有网络的使用,文件阅读等技巧与人们可以很容易地解决任何代码高尔夫球问题(与eval,exec等) 例 Your code with length 25. 输出量 Lorem ipsum dolor sit ame

12
从http://i.imgur.com/查找随机图像
Imgur是免费的图像托管服务。很多人使用它。这是imgur链接的示例:http ://i.imgur.com/T55muMD.png 。编写一个连续输出随机(有效)imgur链接的程序。例如,这是我的程序的一些示例输出(未显示,因为它包含一些您必须弄清楚自己的技巧): http://i.imgur.com/uFmsA.png http://i.imgur.com/FlpHS.png http://i.imgur.com/eAbsZ.png http://i.imgur.com/lEUsq.png http://i.imgur.com/RuveH.png http://i.imgur.com/BoEwB.png http://i.imgur.com/HVFGQ.png http://i.imgur.com/PZpMg.png http://i.imgur.com/DezCY.png 有帮助的提示: 如果imgur是新的,则使用5个字母的链接。 当imgur是新的时,不使用数字。 您可以利用它来发挥自己的优势:仅查找仅包含字母的5个字母的链接图像。那就是我的程序所做的。 另外,所有图像均另存为.png。 要求: 连续输出随机imgur链接 如果输出50条没有重复,则链接被认为足够“随机” 访问时,链接必须是图像 链接必须以http://i.imgur.com/和开头.png 分数是字符数 我用452个字符用Java(打高尔夫球很困难)做到了。这里未显示,因为它包含一些技巧,您必须自己弄清楚!)
11 code-golf 

19
返回一组数字中的每个数字
挑战 程序必须返回包含在一组数字(用逗号和连字符分隔的序列)中的所有数字。 规则 s 是序列字符串; 其中的所有数字s均为正 ; 数量总是会增加 ; 数字永远不会重复 当您回答时,显示输出 s="1,3-5,9,16,18-23" 例子 input(s) outputs ----------------- 1 1 1,2 1,2 1-4 1,2,3,4 1-4,6 1,2,3,4,6 1-4,8-11 1,2,3,4,8,9,10,11 祝好运。=)

4
重新创建经典的蛇游戏
挑战是使用尽可能少的字节来创建经典的Snake游戏。 要求如下: 游戏必须以典型的二维布局实现。蛇应该能够在地图范围内显着生长(这确实意味着,不要将地图缩小得太小,请在此处谨慎使用)。 用户可以使用您选择的键来移动蛇,但是,蛇无法重返自身(例如,如果向西移动,则不先向北或向南移动就不能向东移动)。一条蛇应该能够在所有四个方向上移动:上,下,左,右(北,南,西,东)。 蛇以长度1开始,每次吃“食物”物体时,其长度就会增加+1 食物被随机放置在蛇所没有占据的地方 如果蛇撞到自己或撞墙,则游戏结束 游戏结束后,将显示文字“分数:[分数]”,其中[分数]是游戏过程中食用的食物数量。因此,例如,如果游戏结束时蛇吃了4种“食物”(因此长度为5),则将打印“得分:4”。 除非在您的代码中明确定义了压缩算法,否则没有压缩算法。 这是我的解决方案,908字节,Python 2.7 import random as r import curses as c def g(s,w,l): while 1: p=[r.randrange(0,w),r.randrange(0,l)] for l in s: if l==p:continue return p s=[] d=[0,1] p=k=n=0 e=100 v={65:[-1,0],66:[1,0],68:[0,-1],67:[0,1]} z=c.initscr() w,l=z.getmaxyx()[0],z.getmaxyx()[1] c.noecho() z.clear() x=g(s,w,l) s.append([w/2,l/2]) z.nodelay(1) q=lambda h,i:range(h,len(i)) while k!=101: k=z.getch() if …
11 code-golf  game 

2
给定的字符串有多少台台呢?
如果满足以下条件,我们将一个非空字符串列表称为台面: 每个列出的字符串都是非空的,并且仅使用第一个字符串中出现的字符。 每个连续的字符串都比前一个字符串长一个字符。 在列表中没有字符串是一个序列列表中的任何其他字符串。 术语“ mesa”来自这样的可视化(其中xs是各种字符): xx..x xx..xx xx..xxx . . . xx..xxx..x 注意:这是一个数学事实,只有有限的台面以给定的字符串开头。注意子序列与 子字符串之间的区别;例如,“安娜”是“香蕉”的子序列(但不是子字符串)。 挑战: 编写最短的程序,该程序采用任意的非空字母数字输入字符串,并输出以该字符串开头的台面数目。 输入(stdin): 任何非空的字母数字字符串。 输出(标准输出): 以输入字符串开头的台面数量。 得分: 获胜者是字节数最少的程序。 台面示例 只有一个台面以a: a 只有一个台面以aa: aa 许多台面开始于ab: ab ab ab ab (and so on) baa aaa bbb bbba bbaa baaaa aaaaaa
11 code-golf 

8
建立打字速度测试/测量每千次展示费用
规则 现在是时候以您选择的语言构建打字速度测试了! 1。您为文件提供了一个选择字典(文件中的每个“单词”都必须以换行符分隔)。通过管道输入,stdin或提供其名称作为命令行参数。 一种 能够 关于 以上 缺席 ... 2。从文件中选择10个随机单词(不允许重复),并按以下方式打印出来: ->直接 ->地面 ->下一个 ->五个 ... 3。从现在开始开始计算时间! 4。让用户尽快键入所有十个单词(以回车结束)。打印OK,当你有一个匹配,打印WRONG的时候我们有一个打字错误(或单词已经成功地在此运行类型)。 5。停止计时!现在,打印CPM(每分钟上网人数)基准,该基准的计算方法如下:(sum of the characters of the chosen words / time spent typing (seconds)) * 60。四舍五入到最接近的整数并重现以下(样本)输出: ->您的得分为344 CPM! 样品运行 ->解决 ->侧 ->打开 ->部长 ->风险 ->颜色 ->船 ->相同 ->大小 ->剑 解决 好 侧 好 打开 …
11 code-golf 

19
计算Golomb自描述序列的第n个项
受上一个问题的启发。 哥伦布的自描述序列 g(n)是n在序列g(n)内重复任何自然数的序列。 序列中的前几个数字是: n 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 g(n) 1 2 2 3 3 4 4 4 5 5 5 6 6 6 6 7 7 7 7 8 您可以看到g(4)= 3,并且“ 4”在序列中重复了3次。 给定输入n,输出g(n)。 …

6
到这个日期要多久?
想法是这样的:编写一个函数以打印从现在/今天的日期(调用函数时)到作为参数提供的日期为止的时间长度。 假设: 输入日期将始终是明天或更晚。 输入日期永远不会超过10年。 规则: 输出必须采用以下格式:“ [z年],[x月],y天,直到-Input Date-” 输出时间范围(日/月/年)必须正确地复数。即1 month,不是1 months 输入可以采用您喜欢的任何日期格式(2012年3月15日-2012年3月15日-2012.03.15)。 示例: 假设程序在2012年3月15日运行: 输入日期3/20/12=5 days until 3/20/12 不输入日期4/16/12=1 month, 1 days until 3/20/12 输入日期2012.04.20=1 month, 5 days until 2012.04.20 不输入日期2012.04.20=36 days until 2012.04.20 输入日期10/31/17=5 years, 7 months, 16 days until 10/31/17 输入日期3/15/13=1 year until 3/15/13 这是代码高尔夫球,因此最短的代码获胜。 我想为了有一个截止日期,我将选择一个答案: 2012年3月23日! (这是我的第一个CG问题,因此,我很乐意更正我的所有问题错误!)
11 code-golf  date 

16
盒子动画中的ASCII球
编写一个程序,*在矩形内显示一个移动的ASCII球(20 x 10个字符,包括边框)。球一定不能越过矩形,例如,碰到墙时会掉落。必须每隔0.1秒钟清除并重新绘制场景,并且每帧球必须在x和y方向上移动1个字符。以任何一种语言编写的最短程序都将获胜。 输出示例(帧1) +------------------+ |* | | | | | | | | | | | | | | | +------------------+ 输出示例(第2帧) +------------------+ | | | * | | | | | | | | | | | | | +------------------+ 输出示例(第8帧) +------------------+ | | | | | | …

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.