Questions tagged «code-golf»

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

11
这些方块重叠吗?
给定两个正方形的左上角的坐标及其边长,确定正方形是否重叠。正方形包括顶部和左侧线条,但不包括底部和右侧线条。也就是说,一个点(a,b)位于边长为正方形且k位于(x,y)且仅当x <= a < x+k和时的正方形内y <= b < y+k。边长为0的正方形是简并的,此处将不考虑,因此k将为正。 与往常一样,所有标准规则均适用。输入和输出可以采用任何方便的形式,只要它是人类可读的并且没有预先计算即可。确保指定使用的输入格式。您的代码应采用六个数字,并且如果正方形重叠则输出真实,否则输出虚假。 测试用例 x1 y1 k1 x2 y2 k2 overlap? 1 1 1 0 1 1 false 0 0 3 1 1 1 true 1 1 1 0 0 3 true 0 0 3 2 1 2 true 0 0 2 1 …

15
m发生至少n次的概率
编写一个程序或函数,给定一个成功概率p,一个数n和多个试验m返回m次试验中至少 n次成功的机会。 您的答案必须精确到小数点后至少5位数字。 测试用例: 0.1, 10, 100 -> 0.54871 0.2, 10, 100 -> 0.99767 0.5, 13, 20 -> 0.13159 0.5, 4, 4 -> 0.06250 0.45, 50, 100 -> 0.18273 0.4, 50, 100 -> 0.02710 1, 1, 2 -> 1.00000 1, 2, 1 -> 0.00000 0, 0, 1 -> 1.00000 0, …

7
查找具有各种长度的循环的函数
的功能被说成具有一个长度的周期n如果存在一个X在其结构域,使得˚F Ñ(X)= X和˚F 米(X)≠X为0 <M <N ,其中,上标Ñ表示ñ - f的折叠应用。请注意,长度为1的循环是不动点f(x)= x。 您的任务是实现从整数到其自身的双射函数,该函数正好具有每个正长度n的一个周期。双射函数是一对一的对应关系,即每个整数都恰好映射到一次。具有一个长度为n的正好一个周期意味着正好有n个不同的数字x,对于0 <m <n,f n(x)= x且f m(x)≠x。 这是x = 0周围的此类函数的示例: x ... -7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 ... f(x) ... 2 4 6 -3 -1 1 -4 0 -2 5 7 …

14
最大千里马!
受此问题启发,路易斯·门多(Luis Mendo)对此进行了完善。 挑战 给定一个2D整数矩阵,每一行都有一个最大值。每行的一个或多个元素将等于其相应行的最大值。您的目标是确定哪些列包含的条目数最多,这些条目等于其各自行的最大值以及在这些列中找到的按行最大值。 输入值 输入将是非空Mx N矩阵(M> 0和N> 0),其格式非常适合您选择的语言。 输出量 您的程序应返回包含最大行最大数(作为单独的值或列表)的每列的索引。可以使用基于0或基于1的索引(在说明中指定)。 您的程序还应该返回这些列中存在的最大值(单个数字)。 输出的顺序/格式是灵活的,但应在答案随附的文本中进行说明。 附加信息 输入矩阵中的所有条目均为正整数。 如果某行的最大值由该行中的多个元素共享,则该值的所有出现都将计入其列的总计。 如果多个列包含相同的最大值,则应返回具有该最大值的所有列的列表。 一个例子 考虑输入 7 93 69 35 77 30 第1行的最大值为93,仅出现一次,即在第2列。第2行:出现在第1列。第3行:也在第1列。所以获胜者的列为1,最大值为2。因此输出将是[1] [2]。如果我们将输入更改为 7 93 69 35 77 77 输出为[1 2] [2],因为两列的最大值均为2。 测试用例 input => output ( [1-based index array], [nMaxima] ) ---------------------------------------------- 7 93 69 …

8
画一个phi三角形
澄清:基本上,你需要这个 欧拉的totient函数的名称为phi。 让我们尝试计算phi(8) 首先,向后列出所有数字8,且不包括0或以下 8 7 6 5 4 3 2 1 现在找出哪些数字与8不共享因数(1不计数),并#在其位置放置a 。 8 # 6 # 4 # 2 # 删除数字。 # # # # - 现在执行此操作,但是将输出串成三角形 9 88 777 6666 55555 444444 3333333 22222222 111111111 --------- 123456789 # 排除非要素共享数 9 8# 7## 6#66 5#### 4#4#4# 3##3##3 2#2#2#2# …

7
计算克罗内克积
相关,但有很大的不同。 在下面的例子中,A和B将是2×2矩阵,和矩阵是一个索引。 一个克罗内克产品具有以下特性: A⊗B = A(1,1)*B A(1,2)*B A(2,1)*B A(2,2)*B = A(1,1)*B(1,1) A(1,1)*B(1,2) A(1,2)*B(1,1) A(1,2)*B(1,2) A(1,1)*B(2,1) A(1,1)*B(2,2) A(1,2)*B(2,1) A(1,2)*B(2,2) A(2,1)*B(1,1) A(2,1)*B(1,2) A(2,2)*B(1,1) A(2,2)*B(1,2) A(2,2)*B(2,1) A(2,2)*B(1,2) A(2,2)*B(2,1) A(2,2)*B(2,2) 挑战:给定两个矩阵,A并且B,return A⊗B。 矩阵的大小至少为1-by-1。默认情况下,最大大小将是您的计算机/语言可以处理的大小,但最小5-by-5输入。 所有输入值均为非负整数 不允许使用用于计算Kronecker产品或Tensor / Outer产品的内置函数 一般而言:有关I / O格式,程序和功能,漏洞等的标准规则。 测试用例: A = 1 2 3 4 B = 5 6 7 8 A⊗B …

4
将不确定大小的列表映射到数字!
众所周知,在研究无穷大的数学领域中,任何有限数量的可数集合的笛卡尔积也是可数的。 您的任务是编写两个程序来实现此目的,一个程序从列表映射到整数,一个程序从整数映射到列表。 您的函数必须是双射的和确定性的,这意味着1它将始终映射到特定列表,并且2将始终映射到另一个特定列表,等等。 之前,我们将整数映射到仅包含0和的列表1。 但是,现在列表将由非负数组成。 眼镜 程序/功能,合理的输入/输出格式。 映射的整数是从头开始1还是从头开始0是您的选择,这意味着0不必(但可以)映射到任何东西。 空数组[]必须被编码。 输入/输出可以在任何基础上。 允许在两个函数之间共享代码。 计分 这是代码高尔夫球。最低分获胜。 分数是两个程序/功能的长度之和(以字节为单位)。

7
阅读填字游戏
受有关将其打包成这种格式的问题的启发。 有时,我会看到完整的填字游戏,而且就像我一样,我不费力气找出线索的真正解决方案是什么。 输入: 2D字符串(任何格式,换行符分隔,2d列表等) 空白方块将以(空格字符)表示 每隔一个正方形将使用小写字母。 您可能假设输入将用空格填充以形成一个矩形 输出: 找到每个字 您必须上下搜索单词 单词长度至少为两个字母 如果有重复的单词,则每次出现时都必须输出它们 您不必进行任何验证 单词可以以任何顺序输出 没有严格的格式化规则 测试用例: word e e step t d word, step, west, reed --- pies not no wasp pies, not, no, wasp, in, eons, stop --- igloo n word igloo, word, on

10
hackertyper.net
介绍 hackertyper.net是一个网站,它通过在您输入时以每输入3个字符的速率将Linux内核的加密部分中的复杂代码输出到屏幕上来模拟“黑客攻击”(正如媒体所描绘的那样)。 挑战 您的程序/函数应该接受文件作为命令行参数,对文件路径进行硬编码,或者接受文本(文件中的内容)作为命令行或函数参数,并模仿hackertyper.net对于通过STDIN或同等功能接收到的每个字符,通过从文件向屏幕输出3个字符(STDOUT或同等功能)。 一旦达到EOF,程序应再次从文件开头开始输出字符(自动换行)。 眼镜 为简单起见,您可以假定STDIN已设置为无缓冲区和无回显模式,即等到用户按下Enter键,然后再将输入传递给程序并且不显示键入的字符。 该文件可以包含换行符,而输入不包含换行符。 有关用C语言编写的小示例(非高尔夫球),以演示其工作原理,请参见this。 不需要绿色文本和黑色背景。 输入和输出示例 文件: #include <stdio.h> int main() { } 输入: hello world 输出: #include <stdio.h> int main() { } 文件: hello 输入: hello world 输出: hellohellohellohellohellohellohel
11 code-golf 

10
将字符串拆分为n个(或长度为n的片段)
挑战 在此挑战中,您必须根据输入的顺序执行两个不同(但相关)的任务。 您的程序将接收一个字符串s和一个整数n作为输入,并将 分裂s成长度的片段n,如果s是第一位。如果需要,最后一个元素将更短。 分割s成n相等长度的块,如果n是第一位。如果len(s)不是,n则第一个len(s) mod n元素的倍数将更长。 您只能接受这2个输入。s永远不会只包含数字。 笔记 您可以使用反向映射。如果这样做,请在您的答案中注明。 s将仅包含可打印的ASCII字符(无换行符)。 您可能不使用任何直接解决这两个任务的内置程序。允许所有其他内置程序。 您必须从同一来源获得两个参数。 您可以采用有序列表或其他任何可以清楚表明其顺序的格式来表示参数,只要它们是明确的即可。 您可以将输入作为一个字符串/流,并使用不是有效输入的字符(如空字节)来分隔它们。 n将始终等于或小于长度s且大于零。 您可以以任何合理的格式输出结果列表,只要它能清楚表明特定的部分及其顺序即可。 例 输入: programming, 3 最后一个元素仅包含2个字符,因为11不能被3整除。 输出: ["pro", "gra", "mmi", "ng"] 输入: 3, programming 11不是3的倍数,因此前2个元素将更长: 输出: ["prog", "ramm", "ing"] 规则 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 该Pyth程序生成了测试用例(使用内置函数,因此没有有效答案)。感谢@FryAmTheEggman提供的基本版本! 3,helloworld-> ['hell','owo','rld'] helloworld,3-> ['hel','low','orl','d'] 1,编程-> ['编程'] 编程,1-> ['p','r','o','g','r','a','m','m','i','n','g'] …
11 code-golf  string 

4
得分一个游戏的负载,保卫和射击
小时候,我经常玩这个游戏。 规则 有两个玩家(我们分别称为A和B),每个玩家都用他的手作为枪支。有三种可能的动作: 举起手来向您的枪支装弹药。 每把枪空着。装载使弹药增加一倍。 指向另一个球员射击的手。 这会使弹药减少一倍。您必须至少有一个单位的弹药才能射击。 双臂交叉以保护自己免受射击。 两名玩家同时移动。如果两个玩家同时射击,子弹会互相击中,然后游戏继续进行。当一名玩家射击而另一名玩家携带弹药时,游戏结束。 射击和空枪被认为是作弊行为。如果一名玩家作弊,而另一名玩家执行法律诉讼,则该作弊者立即输掉。如果两个玩家同时作弊,游戏将继续。 作弊尝试不会减少弹药,因此永远不会是负面的。 挑战 给定玩家A和B的举动,输出赢得游戏1的玩家:玩家A,-1玩家B和0平局。您可以使用其他任何三元组的返回值,但是您需要在答案中说明使用了哪些返回值。 游戏可能会: 无需处理所有移动即可结束; 不能以给定的动作结束,因此被视为平局。 输入可以采取: 作为字符串 作为整数的数组/列表 以任何其他不预处理输入的方式 允许完整的程序或功能。由于这是代码高尔夫,因此以字节为单位的最短答案为胜! 测试用例 A: "123331123" B: "131122332" -----^ Player B shoots player A and wins. Output: -1 A: "111322213312" B: "131332221133" -------^ Player B cheats and loses. Output: 1 A: "1333211232221" …
11 code-golf  game 

3
三边位置
介绍 假设您在二维笛卡尔平面上,并且想确定您在该平面上的位置。您知道飞机上的3个点以及与每个点的距离。虽然总是可以从中计算出您的位置,但是在您的头脑中做到这一点非常困难。因此,您决定为此编写一个程序。 挑战 给定3点和您到它们的距离,输出您位置的坐标。 输入和输出可以采用任何方便的格式,包括使用复数而不是实数。请在您的答案中说明使用的格式。 您将始终获得3个与您之间的距离完全不同的点。 坐标和距离将是具有任意精度的浮点数。您的输出必须正确到小数点后三位。取整由您决定。请在您的答案中阐明。 您可能会认为这三个点不是共线的,所以总会有一个唯一的解决方案。 您无权强加解决方案。 您可能不会使用任何琐碎此特定问题的内置函数。不过,允许使用矢量规范等的内置函数。 上手提示: 考虑围绕这三个点的每个圆,以它们到您的距离为半径。 规则 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 这里一个点的输入格式是[[x,y],d]和x,y分别是坐标和d到该点的距离。这些点中的3点排列在一个列表中。输出将是x然后y在列表中。 [[[1,2],1.414],[[1,1],2.236],[[2,2],1.0]]-> [2,3] [[[24.234,-13.902],31.46],[[12.3242,234.12],229.953],[[23.983,0.321],25.572]]-> [-1.234,4.567] [[[973.23,-123.221],1398.016],[[-12.123,-98.001],990.537],[[-176.92,0],912.087]]-> [12.345,892.234] 您可以使用此Pyth程序生成其他测试用例。位置在输入的第一行,三个点在随后的三行。 编码愉快!

3
计算复数的黎曼Zeta函数
介绍 我发现这个问题已经解决,因为不清楚,但这是一个好主意。我会尽力使这成为一个明确的挑战。 的Riemann Zeta函数是被定义为的解析延特殊功能 到复杂的飞机。有许多等效的公式可以使它成为代码高尔夫的有趣之选。 挑战 编写一个程序,将2个浮点数作为输入(复数的实部和虚部),并在该点评估Riemann Zeta函数。 规则 通过控制台输入或输出或功能输入和返回值 不允许内置复数,请使用浮点数(数字,双精度,...) 除数学函数+ - * / pow log和实数值触发函数外,没有其他数学函数(如果要积分,请使用gamma函数,...您必须在代码中包含此函数定义) 输入:2个浮点数 输出:2个浮点数 您的代码必须包含在任意大/小情况下理论上可以给出任意精度的值 输入1的行为并不重要(这是此功能的唯一作用) 以字节为单位的最短代码胜出! 输入和输出示例 输入: 2,0 输出: 1.6449340668482266,0 输入: 1、1 输出: 0.5821580597520037,-0.9268485643308071 输入: -1,0 输出: -0.08333333333333559,0

7
音乐间隔求解器
在音乐理论中,间隔是两个音高之间的差。每个音高由半步数(C和C#之间的差)或整步数(C和D之间的差)定义。整个步骤与两个半步骤相同。这是所有默认间隔及其代表的半步数的列表: 0 Perfect Unison 2 Major Second 4 Major Third 5 Perfect Fourth 7 Perfect Fifth 9 Major Sixth 11 Major Seventh 12 Perfect Octave 默认间隔有3种变化,较小,减小和增大。 一个微小的间隔比一大间隔一个半步低,但不是一个完美的时间间隔。因此,您有一个次要(1),一个次要(3),一个次要(8)和一个次要(10)。因为这些都是完美的时间间隔,所以没有小四度,小五度,小三度或小八度。 甲减少间隔比小一个半步下或完美间隔。第二(0),第三(2),第四(4),第五(6),第六(7),第七(9)和八度(11)减小。 一个增强间隔是一个半步更高的比重大的或完美的时间间隔。我们拥有增强的Unison(1),增强的Second(3),增强的第三(5),增强的第四(6),增强的第五(8),增强的第六(10)和增强的第七(12)。 挑战: 您必须编写程序或功能,需要一个数的一半步骤或全部步骤,然后打印出的一个这个区间的有效英文说明。只要选择与IO表完全匹配的名称,都无关紧要。您可以将此作为一个字符串 "5w" == 5 whole steps "3h" == 3 half steps 或作为数字和字符串/字符。 5, "w" == 5 whole steps 3, "h" …
11 code-golf  music 

1
画螺旋词[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 2年前关闭。 场景 给定一个ASCII小写字母和空格的输入,绘制一个螺旋形的字符,以跟踪不包括空格的原始字符输入。 规则 1)字符应以向外的方式逆时针向左旋转。如果不能左转,则笔直移动。 Given: abcdefg Output: g baf cde 2)只要不违反规则#1,字符就可以变成先前的字符。同样,如果该字符成螺旋形,则该字符将大写。字符大写后,无论重复使用多少次,字符都将保持大写。 Given: apples appeal Output: PAs PLe ea

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.