编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

20
确定整数是否为给定基数的回文(基数)
编写一个程序,从stdin读取两个整数,每个换行符终止,以下称为“ number”和“ radix”,并且: 打印你想,如果数字是在基数回文任何固定的消息(例如true,t,1) 打印你想,如果数字是不是在基数回文(例如,任何不同的固定信息false,f,0等) 这些信息在每次跑步时都必须相同,但是没有关于它们必须是什么的规则(最好是打高尔夫球的规则)。 您可以假设输入有效,两个正整数。“数字”不超过2147483647,“基数”不超过32767。 您可能不会使用外部资源,但可能会使用语言默认包含的任何数学函数。 注意: 基数只是数字的基数。 样品运行: 16 10 false 16 3 true 16 20 true 121 10 true 5 5 false 12346 12345 true 16781313 64 true 16781313 16 true

1
生成脚本以生成Deep Note
该THX深沉的音符在音频/视频制作技术的最知名的声音之一。根据其创建者的说法,大约需要20,000行C代码来生成最终结果。我们可以做得更好。 您的任务是用任何一种语言编写脚本,该脚本将产生适合THX声音商标描述的声音(到文件或直接到硬件),如美国专利商标局提供的那样: THX徽标主题由七个小节中的30种声音组成,从200到400 Hz的狭窄范围开始,然后逐渐转移到涵盖三个八度的预选音高。这30个声音以200 Hz至400 Hz之间的音高开始,到第四小节达到跨越三个八度音阶的预选音高。最高音调略有失谐,而最低两个音调的声音数量是原来的两倍。 请注意,“预选音高”必须与实际的THX深音符中的音高大致相同,该音高在E平键中。 以任何语言进行的最短代码都会胜出。
11 code-golf 

23
仅使用加法和减法计算所有x的平方
目标是计算所有平方,直到x加减乘。 规则: 该代码必须是一个函数,该函数使用要生成的平方总数,并返回包含所有这些平方的数组。 您不能使用字符串,结构,乘法,除法或内置函数来计算平方。 您只能使用数组,整数(整数),加法,减法。禁止其他运算符! 这是一个代码问题,因此以字节为单位的最短代码胜出!
11 code-golf  math  number 

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)

1
生成最少的彩票以拥有至少N个好数字
这是一个相当复杂但非常有趣的数学学科(称为“覆盖问题”), 我希望您能帮助您实施它。 想象一下一个彩票游戏,其中每张彩票必须从50个数字(从1到50)中选择5个随机数字。 很容易知道中奖的概率,或者拥有1、2、3或4个好数字的概率。 “生成”具有1、2、3、4个良好数字的所有票证也很容易。 我的问题(和代码挑战)与此有关,但略有不同: 我想买一些彩票(尽可能少的),例如我的至少一张彩票有3个好数字。 挑战 您的目标是以任何语言实现这样的通用解决方案(作为程序或只是函数): // Input: 3 prameters min_lottery_tickets(total_numbers_to_choose_from, how_many_numbers_to_choose, how_many_good_numbers_i_want) 对于上面的示例,只需调用: min_lottery_tickets(50, 5, 3) 该程序将生成最小的票证集合以实现此目标。 例: min_lottery_tickets(10, 5, 2) 将输出7张票,例如: 1 2 3 4 5 5 6 7 8 9 10 1 2 6 7 10 3 4 8 9 3 4 6 7 …

2
实施超级优化器进行添加
任务是编写可为位和找到小的逻辑公式的代码。 总体挑战是您的代码要找到最小的命题逻辑公式,以检查y二进制0/1变量的总和是否等于某个值x。让我们将变量称为x1,x2,x3,x4等。您的表达式应等于和。也就是说,当且仅当和等于x时,逻辑公式才应为真。 这是一个幼稚的方法。假设y = 15且x =5。选择所有3003种不同的方式来选择5个变量,并为每个变量创建一个新子句,其中包含这些变量的AND和其余变量的否定AND。您最终得到3003个子句,每个子句的长度恰好为15,总费用为45054。 例如,您的答案应该是可以粘贴到python中的那种逻辑表达式,以便我可以对其进行测试。如果两个人得到相同大小的表达式,则运行速度最快的代码将获胜。 您可以在解决方案中引入新变量。因此,在这种情况下,您的逻辑公式由y个二进制变量,x和一些新变量组成。当且仅当y变量的总和等于x时,整个公式才是可满足的。 首先,有些人可能想从y = 5变量加到x = 2开始。天真的方法将产生50的成本。 该代码应将两个值y和x作为输入,并输出公式及其大小作为输出。解决方案的成本只是其输出中变量的原始计数。所以(a or b) and (!a or c) 算作4只允许运营商and,or和not。 更新事实证明,至少在理论上,当x = 1时,有一个聪明的方法可以解决这个问题。

6
仅使用* 3和/ 2运算将1转换为任何正整数
通过从1开始并应用一系列操作可获得任何正整数,每个操作要么是“乘以3”,要么是“除以2,则舍弃任何余数”。 示例(用f表示* 3,用g表示/ 2): 4 = 1 *3 *3 /2 = 1 ffg 6 = 1 ffggf = 1 fffgg 21 = 1 fffgfgfgggf 编写一个具有以下行为的程序: 输入:通过stdin或硬编码的任何正整数。(如果是硬编码,则输入数字将从程序长度中排除。) 输出:一串f和g的字符串<input> = 1 <string>(例如示例中)。这样的反序字符串也是可以接受的。注意:输出仅包含f和g,或者为空。 当输入41时,获胜者是程序加输出字节最少的条目。

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树中的位置相对应的二进制分数。 …

2
只是一个音符-乐器合成[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 声明 任务是使用(您选择的)通用编程语言的功能来合成(您选择的)某种乐器的声音(弹奏一个音符)。 有两个目标: 产生的声音的质量。它应尽可能类似于真实乐器; 极简主义。建议将代码保持在1500字节以下(如果仅产生基本声音,则应减少)。 只需要提供生成功能,不计入样板。 不幸的是,无法为声音保真度计算分数,因此没有严格的规则。 规则: 不依赖样本库,不需要专门的音乐生成工具; 禁止从网络下载或尝试使用麦克风或声卡的MIDI或类似外部的东西; 代码大小的度量单位是字节。可以在当前目录中创建文件。可能存在预先存在的文件(系数表等),但其内容将添加到乐谱中,并且必须按名称将其打开。 样板代码(不计分)接收有符号整数的数组(列表),仅处理输出它们。 输出格式是带符号的小尾数16位字,每秒44100个样本,并带有可选的WAV标头。没有尝试输出压缩音频而不是普通的波形; 请选择用于合成的其他乐器(或该乐器的其他质量与代码大小类别);但最初不要告诉您要模拟什么-让其他用户猜测评论; 不鼓励使用电子仪器; 鼓是一种乐器。人的声音是一种乐器。 样板 这是某些语言的样板。您也可以为您的语言编写类似的样板。注释掉的“ g”功能仅用于演示(1秒440 Hz正弦音)。 C: //#!/usr/bin/tcc -run #include <stdio.h> #include <string.h> #include <math.h> #include <stdlib.h> /* void g(signed short *array, int* length) { *length = 44100; …

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

1
通过使用给定的数字和算术运算符列表生成数字
系统会为您提供数字列表L = [17, 5, 9, 17, 59, 14],一包运算符O = {+:7, -:3, *:5, /:1}和一个数字N = 569。 任务 输出一个方程式,该方程式L的左侧使用所有数字,而右侧使用仅数字N。如果不可能,则输出False。解决方案示例: 59*(17-5)-9*17+14 = 569 局限和澄清 您不能连接数字([13,37]不能用作1337) 只会出现自然数和零L。 顺序L无关紧要。 您必须使用中的所有数字L。 只有运营商+,-,*,/会出现O。 O可以拥有比您所需更多的运算符,但至少|L|-1运算符 您最多可以多次使用每个运算符,直到的值O。 其中的所有四个运算O都是标准的数学运算;特别/是具有精确分数的正态除法。 点数 点越少越好 代码的每个字符都给你一点 您必须提供易于阅读的非公开版本。 背景 一个类似的问题,有人问堆栈溢出。我认为这可能是一个有趣的代码高尔夫挑战。 计算复杂度 就像彼得·泰勒(Peter Taylor)在评论中说的那样,您可以使用以下方法求解子集和: 您有一个子集总和的实例(因此,有一组S和一个整数x) L:= S + [0,...,0](| S |乘以零),N:= x,O:= {+:| S | -1,*:| …

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

2
不足的发射器[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 您的目标是编写一个超级秘密程序,该程序将启动另一个(独立的)程序。您不必在答案中提供有效负载,它可以是您的程序将启动的任何程序名称。 但是,挑战在于保持这种行为的机密性。随意检查代码后,应该不可能或很难注意到您的程序实际上在执行外部程序。一旦发现此“隐藏功能”,就可以合理地将其解释为无意的错误。这就是为什么代码必须尽可能清晰的原因,所有内容都应该有不在场证明,否则检查您代码的人可能会怀疑。 请记住,这不是一场打高尔夫球的比赛,而是一场无用的比赛。 您的代码必须清晰易读。 更改的原因必须隐藏。即使被发现,它们看起来也更像是臭虫而不是恶意。 您应该提供一个解释,最好是扰流板。 像这样 获胜者将在第一个有效答案后的10天内被选为投票最高的答案。 是的,我知道这是主观的,但这是足以应付欠缺比赛的唯一标准。 选民应该重视标准的“卑鄙的”品质,例如代码的清晰程度和原因隐藏的程度。 我参加了编译语言竞赛,但是如果您找到两个不同的著名解释器,那么您也可以使用解释语言。

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

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.