Questions tagged «code-golf»

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

8
矩阵的特征值
给定一个正方形矩阵,输出矩阵的特征值。每个特征值应重复与其代数多重性相等的次数。 矩阵的特征值A是标量值λ,使得对于某些列向量v,A*v = λ*v。它们也是的特征多项式的解决方案A:(det(A - λ*I) = 0其中I与相同的维的单位矩阵A)。 输出必须精确到3个有效数字。对于您选择的语言,所有输入和输出都将在数值的可表示范围内。 可以使用内置函数,但是建议您包括不使用内置函数的解决方案。 测试用例 在这些测试用例中,I代表虚部。复数以形式书写a + b*I。所有输出的精度为3位有效数字。 [[42.0]] -> [42.0] [[1.0, 0.0], [0.0, 1.0]] -> [1.00, 1.00] [[1.0, 2.0, 3.0], [4.0, 5.0, 6.0], [7.0, 8.0, 9.0]] -> [16.1, -1.12, -1.24e-15] [[1.2, 3.4, 5.6, 7.8], [6.3, 0.9, -5.4, -2.3], [-12.0, -9.7, 7.3, 5.9], [-2.5, …

26
电子存钱罐
一个储蓄罐是用于在收集硬币的容器对于这个挑战使用四个美国硬币:季毛钱,镍和一分钱。 挑战 您的挑战是创建一个电子存钱罐。编写一个程序(或函数),当运行(或调用)该程序(或函数)时,输出(或返回)您拥有的每个硬币的计数以及硬币的总金额。 输入值 一串,一串等(您选择的)硬币放入您的存钱罐(不区分大小写)。 Q - Quarter(Value of 25) D - Dime(Value of 10) N - Nickel(Value of 5) P - Penny(Value of 1) 输出量 输入中的硬币总数和总数,由您选择的非整数定界符分隔。(输出硬币总数的顺序无关紧要,但是硬币总值(总和)必须是最后一个元素) 例子 Input -> Output P -> 1,0,0,0,1 or 0,0,0,1,1 or 0,0,1,0,1 or 1,1 N -> 0,1,0,0,5 D -> 0,0,1,0,10 Q -> 0,0,0,1,25 QQQQ …
11 code-golf 

2
我的世界库存管理
Minecraft库存管理非常困难。您有17颗钻石,但需要7颗才能制作附魔表,镐和剑。您捡起它们并右键单击7次吗?还是您右键单击一次,然后右键单击两次,然后左移7个?太混乱了! 对于那些现在感到困惑的人,请放心,我将在几秒钟内为您解释一切 挑战 给定一堆物品的大小和所需的数量,请确定获得该数量的最少点击次数。两个输入最多只需要处理64个,并且可以假定您有无限的库存位置。您不能使用拖动到分发的把戏。 定义 该库存是插槽,可存储项目的集合。 一个插槽是库存中的存储空间,您最多可以将一种类型的项目。 甲堆栈是一个数字放置在同一组项目。出于此挑战的目的,堆栈只是同一位置的一堆项目(因此,忽略堆栈大小) 将光标就是你的尖啄。那个光标。它可以有“上面”的项目;换句话说,如果您单击插槽并拾取了项目,则拾取的项目将“在光标上”,直到您放下它们为止。 技术指标 有四种可能的情况。光标上是否有项目,或者没有,左键单击或右键单击。 如果光标上没有项目,而在插槽上单击鼠标左键,则将拾取整个堆栈。 如果光标上没有项目,然后在插槽上单击鼠标右键,则将堆放的一半取整。 如果光标上有一个项目,并且在插槽上单击鼠标左键,则将所有项目都放入该插槽中。(对于您所有的Minecraft玩家,您将没有超过64件物品可以挑战,它们都可以堆叠64位,并且只有一种类型,因此物品互换不适用于此处) 如果光标上有一个项目,然后右键单击插槽,则将一个项目放入该插槽。 因此,您从插槽中给定的所有项目(第一个输入,或第二个;您可以选择顺序)开始,然后要在光标中输入所需的数量(其他输入)作为结束。 让我们来看一个例子。假设您从17个项目开始,并且想要7。首先,在堆栈上单击鼠标右键,这意味着您已拾取9,该插槽中有8。然后,如果再次在堆栈上单击鼠标右键,则将一个项目放回插槽中,使您剩下8,而插槽则有9。最后,再次单击鼠标右键,您有7,插槽有10。因此,您将返回3(点击次数)。 如果您设法使我失望,请告诉我,我将编辑示例:P 测试用例 这些是手动生成的,因此请告诉我是否有任何错误。我通过单击鼠标右键单击进行库存管理,所以我没有最佳库存管理的经验:P Given, Desired -> Output 17, 7 -> 3 64, 8 -> 5 63, 8 -> 5 10, 10 -> 1 10, 0 -> 0 # note this case 25, 17 …
11 code-golf  game 

4
用雅可比(Jacobi)方法求解矩阵方程(修订)
数学背景 设A为实数的N×N矩阵,N个实数的ba向量和xa个N个未知实数向量。矩阵方程为Ax = b。 Jacobi的方法如下:分解A = D + R,其中D是对角线矩阵,R是其余项。 如果您做出初始猜测解x0,则改进的解为x1 =逆(D)*(b-Rx),其中所有乘法都是矩阵矢量乘法,而逆(D)是矩阵逆。 问题规格 输入:完整的程序应接受以下数据作为输入:矩阵A,向量b,初始猜测x0和“错误”数e。 输出:程序必须输出最少的迭代次数,以使最新的解决方案与实际解决方案之间的差异最多为e。这意味着矢量的每个分量的绝对大小最多相差e。您必须使用Jacobi的方法进行迭代。 如何输入数据是您的选择 ; 它可以是您自己在命令行上的语法,也可以从文件中获取输入,无论您选择什么。 数据的输出方式是您的选择 ; 可以将其写入文件,在命令行中显示,以ASCII文字形式书写,并且只要人类可以阅读即可。 更多详情 您没有得到真正的解决方案:如何计算真正的解决方案完全取决于您自己。例如,您可以通过Cramer规则或直接计算逆来解决它。重要的是您拥有一个能够与迭代进行比较的真正解决方案。 精度是一个问题;有些人的“确切解决方案”可能会有所不同。出于该代码的目的,精确的解决方案必须为10个小数位。 绝对清楚地说,即使您当前迭代解决方案的一个组成部分比真实解决方案中的相应组成部分都增加了e,那么您需要保持迭代。 N的上限取决于您所使用的硬件以及您愿意花多少时间运行该程序。出于此代码高尔夫球的目的,假定最大值N = 50。 前提条件 调用程序时,您可以随时假设以下条件成立: N> 1且N <51,即您永远不会得到标量方程,而总是矩阵方程。 所有输入都在实数范围内,并且永远不会复杂。 矩阵A总是使方法收敛到真正的解,这样您总是可以找到许多迭代以最小化小于或等于e的误差(如上定义)。 A 永远不是零矩阵或恒等矩阵,即有一个解。 测试用例 A = ((9, -2), (1, 3)), b = (3,4), x0 = (1,1), e …

18
独特的逆向工程(强盗的线程)
给定警察程序(o)的输出,字节数(n)和使用的唯一字节数(c),得出一段相应的代码,该代码n长为c字节,具有与警察输出相匹配的唯一字节o。 这是强盗线程。在此处发布您破解的解决方案。 COPS线程位于此处。 强盗应发布以下解决方案: #[Language], `n` Bytes, `c` Unique Bytes (Cracked)[Original Link to Cop Thread] [Solution] (Explanation) 规则 您可能没有为程序输入任何信息。 该程序必须至少使用1个字节,但不能超过255个字节。 输出本身也限制为255个字节。 多次执行时,程序必须具有一致的输出结果。 如果您提交的内容在7天内没有被破解,则可以将其标记为“安全”。 将其标记为安全时,张贴预期的解决方案并将其评分为c*n。 获奖 c*n分数最低的未破解职位赢得了警察的支持。 谁破解得最多,谁就赢得强盗线索,最早的裂缝打破平局。 这将在10个安全答案或几周后决定。 注意事项 如果您感到自大,可以使用扰流器标签告诉用户算法。 注意:另外,请记住要修补裂缝,它们通常是令人印象深刻的部分。

20
Sumac序列的长度[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 2年前关闭。 Sumac序列以两个整数开头:t 1和t 2。 下一项t 3 = t 1 -t 2 更一般而言,t n = t n-2 -t n-1 当t n <0 时,序列结束。 您面临的挑战:编写一个程序或函数来打印Sumac序列的长度,从t 1和t 2开始。 t 1和t 2是您语言范围内的整数。 有标准漏洞。 测试用例 t1 t2 sumac_len(t1,t2) 120 71 5 101 42 3 500 499 4 387 1 3 奖励街头信誉: 3 -128 …

30
单数:字母
目的 编写一个程序或函数(或等效函数),以进行排序并返回随机大小矩阵中的奇数字母。 细节 您将通过矩阵(作为字符串)作为诸如此类的随机尺寸的输入。 bbbbbbbbbb bbbbbdbbbb bbbbbbbbbb bbbbbbbbbb bbbbbbbbbb 您的工作是找到与其余字母不匹配的字母(在本例中为d,在第2行第6行找到),并返回该字母作为输出。矩阵将由字母A-Z,a-z换行符(\n,仅在行的末尾)组成,尺寸范围为5x5至10x10(25-100个字母)。 有标准漏洞。这是一场代码挑战赛。最小字节码的条目获胜。 输入值 如果是程序,则输入将通过标准输入作为字符串传递;如果是函数(或类似功能),则作为参数传递。 输出量 甲单个字符是“奇数”在基质中或 None,nil,NUL,或该字符串"None"如果没有“奇数”字。 更多例子 AAAAAAA AAAAAAA AAAAAAA AAAIAAA AAAAAAA 回答: I vvqvvvvvvv vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv vvvvvvvvvv 回答: q puuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu uuuuuuuuu 回答: p 发电机 这是用Python编写的随机矩阵生成器,可用于测试程序。注意:极有可能会出错,并且不要用奇数字母表示。 显示代码段 Instructions 1. Copy this …

14
扩大数量
扩大数量 您的任务是按以下方式扩展大于0的整数: 将数字拆分为十进制数字,并根据以下规则为每个数字生成一个列表: 如果该数字为奇数,则列表以该数字开头并降为1; 如果数字是偶数,则列表以数字开头,并上升到9。 如果数字为0,则列表为空。 写下数字下方的奇数列表,偶数上方的列表。然后将各列顶部对齐,并收集每一行中的数字以制成整数。作为最后一步,将数字加起来以查找数字的扩展。 以下是适用于34607的上述规则的示例: 9 8 79 68 57 346 7 -> 399 7 -> 3997 -> 9418 2 6 288 6 2886 1 5 177 5 1775 4 66 4 664 3 5 3 53 2 4 2 42 1 1 1 这是测试用例: 1: 1 …
11 code-golf  number 

6
LaTeX真值表
编写一个程序或函数,该程序或函数接受逻辑函数的输出列表,并输出其真值表的LaTeX代码。 输入应标记为小写字母a-z,输出应标记为F。输入列表的长度将始终小于2^25,这意味着输入数量将始终小于25,因此您可以将小写字母的字母用作输入名称。 输入值 n输入数量和2^n代表逻辑功能输出的二进制数长度列表。 输出量 产生该功能真值表的LaTeX代码。输入和输出值应以行为中心。表标题及其值之间以及输入和输出之间必须有一条线,因此代码应类似于下面的代码。 \begin{tabular}{c * <NUMBER OF INPUTS>|c} <INPUTS>&F\\ \hline <INPUT VECTOR i>&<OUTPUT>\\ \end{tabular} 例 输入: 2 [0, 0, 0, 1] 输出: \begin{tabular}{cc|c} a & b & F \\ \hline 0 & 0 & 0 \\ 0 & 1 & 0 \\ 1 & 0 & 0 …
11 code-golf  math 

8
可视化包含-排除
包含-排除使您可以在知道其他一些值的情况下计算集合之间的某些并集和相交的大小。我不会确切解释,但是您的挑战是在维恩图上可视化包含-排除。 因为我很好,所以您将使用矩形,而不是圆形。 您将获得一个以任何合理格式(由4元组组成的列表,成对的列表,成对的列表等)表示的矩形列表,这些矩形由左上角和右下角的坐标表示。您可以假定所有坐标都是非负数,并且在您的语言的(合理的)数字范围内(请指定小于128的坐标)。您可以选择是左包含或左包含以及右包含或右包含。无论选择哪种格式,都可以假定所有矩形至少为1x1。 然后,您将使用一个非空白字符绘制屏幕上的每个矩形(ASCII画布)k,这是您可以选择的。 但是,每当两个矩形重叠时,重叠区域应使用另一个非空白字符绘制l != k,您也可以选择。 每当3个矩形重叠时,重叠区域应与被绘制k,以及用于奇数矩形的覆盖,k以及偶数,l。 背景应为单个空格(0x20)。 测试用例(k = "#", l = ".") 0 0 9 9 1 1 10 10 2 2 11 11 ######### #........# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #.#######.# #........# ######### 1 1 3 3 2 2 4 4 ## #.# ## 1 …

2
有点大陆
假设我们有一个位矩阵(至少包含一个1): 0 1 0 1 1 0 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 0 0 1 0 1 1 0 1 0 1 0 1 1 0 0 1 0 0 1 1 0 1 0 0 0 1 0 …

6
倒Quine!
我们都知道什么是藜。一个倒置喹是一个非空的程序,打印它的源代码不读它的源代码的倒数,和仅由可打印ASCII字符(空格通过~)。 此处,“源代码的逆序”表示以下含义:程序的输出必须包含每个可打印的ASCII字符(m-c)次,其中c是该字符在代码中出现的次数,m是最大值在代码中重复任何字符的次数。 (换句话说:您的代码 + 您的输出 = 所有可打印ASCII 的m乘以排列。) 例如,如果您的程序是12345,则m = 1,则应输出此字符串的任何排列: !"#$%&'()*+,-./06789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 如果您的程序是AAB,则m = 2,那么您应该输出以下任何排列: !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@BCCDDEEFFGHHIIJJKKLLMMNNOOPPQQRRSSTTUUVVWWXXYYZZ[[\\]]^^__``aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~ 请注意,有两个缺失As和一个失踪B。 尽管一个包含所有可打印ASCII字符但不输出任何内容的程序是有效的反quine(满足m = 1),但是考虑到它的长度,这样的答案并不是很具有竞争力。 如上段所述,您将要编写一个反向的程序。因为这是代码高尔夫,所以以字节为单位的最短程序将获胜。祝好运!

7
简单的DTMF解码:找到电话密钥!
这是一个简单的挑战,有望带来一些创造性的答案。 引用维基百科:“双音多频信令(DTMF)是在电话设备与其他通信设备和交换中心之间的电话线上使用语音频带的带内电信信令系统。” 任务 给定下表中代表列和行频率的两个整数,您的任务是输出相应的键: | 1209 Hz | 1336 Hz | 1477 Hz -------+---------+---------+--------- 697 Hz | 1 | 2 | 3 770 Hz | 4 | 5 | 6 852 Hz | 7 | 8 | 9 941 Hz | * | 0 | # 例子 如果输入为[ 1209, 852 …

1
堆叠板
我有一堆板,需要在尽可能小的空间内堆叠。不幸的是,如果我叠放超过10块高的木板,它们就会掉下来。我需要一个程序来告诉我如何堆叠电路板,以使其占用尽可能少的水平空间,而又不堆叠超过十个高的电路板,或者使电路板悬空在空的空间上。 你的任务: 编写一个程序或函数,当给定包含板长的数组时,以ASCII艺术形式输出堆叠板以节省尽可能多的水平空间的方式,而不会堆叠超过10层高的板或任何板的任何部分板闲逛在空的空间。您的ASCII艺术作品应显示板子的配置,每块板子使用不同的字符显示。最多有20个板。例如,如果输入为[2,2,4,2,2,4,4,4,4],则可能的输出为: dhh dgg dff dee abc abc abc abc 这是一个稳定的配置(尽管在现实生活中,它会在约0.1秒内掉落)。 输入: 一个包含最多20个整数的数组,显示木板的长度。 输出: 如上所述,显示板配置的ASCII文字。 测试用例: 请注意,对于测试用例,可能还有其他解决方案,并且每块板上显示的字符可能不同。 [12,2,2,2,3,4,4,8,8] -> ffgghhiii ddddeeeeeeee bbbbbbbbcccc aaaaaaaaaaaa [4,4,4,4,4,4,4,4,4,4,4,4] -> llll aaaa cfghk cfghk cfghk cfghk debij debij debij debij [4,4,4,4,4,4,3,3,3,2,2,2,1] -> jjml iiil hhhk gggk ffff eeee dddd cccc bbbb aaaa 得分: 这是代码高尔夫,最低得分(以字节为单位)获胜

14
ASCII飞机横幅
给定两个输入-其中一个非空打印的ASCII字符串(包括空间,不包括换行),两个不同的,你的选择(一致值的另一个是一个1 / 0,l / r,left / right等) -输出一个ASCII技术飞机字符串的横幅,指向左侧或右侧。为了保持一致性,我将使用left和right整个挑战描述。 平面是|-DI>-/(left)或\-<ID-|(right)。由于标语是清晰的,因此它由输入字符串的字符组成,这些字符由空格分隔,从左到右(left)或从右到左(right),并用形状框包围 /--/ ---< < \--\ 要么 \--\ > >--- /--/ 注意必须有消息的开始/结束和之间有一个空格>,<字符。 例如,这是消息HAPPY BIRTHDAY!和方向left: /-------------------------------/ |-DI>-/---< H A P P Y B I R T H D A Y ! < \-------------------------------\ 这是消息PPCG和方向right。请注意,从横幅广告的这一面查看时,字母显示为“向后”: \---------\ > G C P P >---\-<ID-| /---------/ 规则 前导或尾随的换行符或空格都是可选的,只要字符本身正确对齐即可。 …

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.