Questions tagged «code-golf»

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

22
数字三角形
挑战: 输入:正整数nnn 输出: 在[1,n][1,n][1,n]范围内创建一个列表,并将其连接到一个字符串(即n=13n=13n=13将是字符串12345678910111213)。 现在,根据输入整数,使用以下字符串的四个方向之一,使用此字符串的前缀或后缀输出三角形: 如果,将其输出为三角形◣n≡0(mod4)n≡0(mod4)n\equiv 0\pmod 4 如果,将其输出为三角形◤n≡1(mod4)n≡1(mod4)n\equiv 1\pmod 4 如果,将其输出为三角形◥n≡2(mod4)n≡2(mod4)n\equiv 2\pmod 4 如果,将其输出为三角形◢n≡3(mod4)n≡3(mod4)n\equiv 3\pmod 4 例: 输入:n=13n=13n=13 因为,所以形状为◤。这里是三个可能的有效输出:13≡1(mod4)13≡1(mod4)13\equiv 1\pmod 4 12345678910111213 11111111111111111 12345678910111213 1234567891011121 2222222222222222 2345678910111213 123456789101112 333333333333333 345678910111213 12345678910111 44444444444444 45678910111213 1234567891011 5555555555555 5678910111213 123456789101 666666666666 678910111213 12345678910 77777777777 78910111213 1234567891 8888888888 8910111213 123456789 999999999 910111213 12345678 …

15
建立ASCII平台
在体育比赛中,经常会出现获奖者出现在领奖台上的情况,第一名的人排在中间最高,第二名的人排在中间高度的左侧,第三名的人排在最低和在右边。我们将在此处进行一些特殊的调整来重新创建它。 领奖台如下: @---@ | @ | @---@| | | | @ || | | | | || | |@---@ | | || | || @ | 这将构成这一挑战的基础。下一步是使讲台足够宽,以适合讲台上的人员(可打印ASCII字符串)。但是,我们要确保美观(因为这是一次绝佳的拍照机会),因此每个讲台的宽度必须相同,并且宽度必须为奇数。此外,人们(显然)会希望站在讲台的中央,因此,弦线必须尽可能地居中。(您可以向左或向右对齐,并且不需要保持一致。)上面的讲台是最小的尺寸,被认为是3宽的。 例如,假设输入分别["Tom", "Ann", "Sue"]代表第一,第二和第三名,则输出以下讲台: Tom @---@ Ann | @ | @---@| | | | @ || | | Sue | | || | |@---@ …

11
这个集合代表自然数吗?
在集合理论中,自然数NN={0,1,2,3,...}\mathbb{N} = \{0, 1, 2, 3, ...\}通常被编码为纯集,即仅包含空集或其他纯集的集。但是,并非所有的纯集都代表自然数。挑战在于确定给定的纯集是否表示自然数的编码。 自然数的编码以下列方式1起作用: 零是空集:Set(0)={} Set(0) = \{\} 对于许多n>0n > 0:Set(n)=Set(n−1)∪{Set(n−1)} Set(n) = Set(n-1) \cup \{Set(n-1)\} 因此,前几个自然数的编码是 0⇝{} 0 \leadsto \{\} 1⇝{0}⇝{{}} 1 \leadsto \{0\} \leadsto \{\{\}\} 2⇝{0,1}⇝{{},{{}}} 2 \leadsto \{0,1\} \leadsto \{\{\},\{\{\}\}\} 3⇝{0,1,2}⇝{{},{{}},{{},{{}}}} 3 \leadsto \{0,1,2\} \leadsto \{\{\},\{\{\}\},\{\{\},\{\{\}\}\}\} 4⇝{0,1,2,3}⇝{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}} 4 \leadsto \{0,1,2,3\} \leadsto \{\{\},\{\{\}\},\{\{\},\{\{\}\}\},\{\{\},\{\{\}\},\{\{\},\{\{\}\}\}\}\} 任务 …

25
产生密码
记住密码非常困难,因此我想出了一种生成密码的方法。 按照以下步骤,我是通过单词或句子生成密码的: 从左到右开始 查找每个字母的数量 按顺序把字母和数量放在一起 重复度更高的字母将在结尾 重复相同的字母将按字母顺序排列 数字和特殊字母将被忽略,包括空格(例如9、4,@,(,*等)将被忽略) 组字母忽略大小写。在输出中,使用输入中最后一次出现的情况 字母的计数可以是任何数字,例如5H17M345K 如果输入为全数字或特殊字母,则输出为空字符串,例如输入“ 12 $ * 34 ^!” 然后输出“” 当相同出现的顺序按字母顺序大小写无关紧要时,例如1a1B1c 例: Input: Kitkat Tango (2k / 1i / 3T / 2a / 1n / 1g / 1o) Output: 1g1i1n1o2a2k3T 另一个例子: Input: Database Partitions Task (1D / 5a / 4T / 1b / …

12
密集包装的十进制(DPD)到十进制
对于nandgame爱好者:请在逻辑门中也尝试DPD十进制! 背景 密集包装的十进制(DPD)是一种以二进制有效存储十进制数字的方法。它以10位存储三位十进制数字(000至999),这比朴素的BCD(以4位存储一位数字)的效率要高得多。 记号 小写字母ato i是复制到十进制表示形式的位。 0和1是输入或输出位模式中的确切位。 x 转换中将忽略这些位。 换算表 以下是从10位DPD到三位十进制数字的转换表。每个十进制数字都表示为4位二进制(BCD)。双方都从最高位到最低位从左到右书写。 Bits => Decimal (Digit range) a b c d e f 0 g h i => 0abc 0def 0ghi (0-7) (0-7) (0-7) a b c d e f 1 0 0 i => 0abc 0def 100i (0–7) (0–7) (8–9) …

24
任意随机
随机性很有趣。没有意义的挑战很有趣。 编写一个函数,在给定整数输入的情况下n,将输出介于和(包括)之间的一组(无序,唯一的)精确n随机整数,以使所有整数的总和等于。1n^2n^2 随机性也不会是均匀的,只要每个有效集有发生非零机会。 以字节为单位的最短答案(每种语言)获胜。 例子 Input (n) = 1, Target (n^2) = 1 Sample of possible outputs: 1 Input = 2, Target = 4 Sample of possible outputs: 3, 1 1, 3 Input = 3, Target = 9 Sample of possible outputs: 6, 1, 2 3, 5, 1 4, 3, …

23
均衡数组
挑战 给您整数数组。通过移动,您可以将数组的元素增加或减少1。您的任务是均衡数组,即通过执行一些moves使数组的所有元素相等。但这还不够!你也想使尽可能少的动作尽可能。一种aa 输入项 非空阵列 整数的一种aa 任选地,该长度的。一种aa 输出量 均衡数组所需的最小移动次数。一种aa 规则 标准规定了有效的意见,I / O,漏洞适用。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜。像往常一样,不要让可笑的简短的高尔夫语言解决方案阻止您以您选择的语言发布更长的答案。 这不是规则,但是如果包含测试解决方案的链接以及其工作原理的说明,您的答案会更好。 例子 Input --> Output [10] --> 0 [-1, 0, 1] --> 2 [4, 7] --> 3 [6, 2, 3, 8] --> 9 [5, 8, 12, 3, 2, 8, 4, 5] --> 19 [1,10,100] --> 99

18
使它们总计为10,000
最近,我们在PPCG上已达到10,000个问题的门槛。万岁!让我们用一个简单的挑战来庆祝这一点。 输入项 两个整数和都在,因此。一种AA乙BB[ 1..9999 ][1..9999][1..9999]A + B &lt; 10000A+B&lt;10000A+B<10000 任务 您的任务是将一个数字加到这些整数之一,或者将一个数字加到两个整数,使得。如果将数字添加到和,则不必一定是相同的数字。A + B = 10000A+B=10000A+B=10000一种AA乙BB 可以在原始整数的开头,结尾或中间的任意位置添加新数字。但是,您不能添加前导零。 例: 对于,以下转换有效:A = 923A=923A=923 1 92392 7 3923 8192392739238\color{red}1923\\92\color{red}73\\923\color{red}8 但是这些是无效的: 0 92310 9239 4 2 7 309231092394273\color{red}{0}923\\\color{red}{10}923\\9\color{red}{4}2\color{red}{7}3 给定和,有两种可能的解决方案:A=923A=923A=923B=72B=72B=72 9238+762=100009273+727=100009238+762=100009273+727=10000923\color{red}8 + 7\color{red}62 = 10000\\92\color{red}73 + 72\color{red}7 = 10000 输出量 您必须打印或输出所有可能解决方案的列表。 对于上述示例,预期输出为[[9238,762],[9273,727]]。 规则 I / O可以以任何合理,明确的格式进行处理。您可以使用字符串,数字列表等代替整数。 …

24
比较版本号
发布某些软件时,我们会为其分配一个版本号。用户可能需要更新到某些软件的最新版本。因此,现在是时候找出哪个版本应该较新。 输入项 输入两个版本号作为字符串。 在此挑战的背景下,我们仅支持版本号,该版本号是一些由点组成的数字。 版本号是一个字符串,只能包含数字(0〜9)和点(.)。 点号不是版本号的第一个/最后一个字符。 点之间必须有一些数字。不能连续出现两个点。 版本号中的所有数字都应小于2 16。 输出量 比较输入的版本号并输出是否第一个大于/等于/小于第二个。您可以选择以下演示文稿之一: 使用正数/零/负数,而零表示相等; 使用三个恒定的不同值; 比较中 您无需实施本节中描述的算法。您的提交是有效的,只要它与该算法产生相同的输出即可。 版本号是一些小数点,由点连接。我们首先将两个版本号拆分为数字数组; 用零填充数组的末尾以使它们具有相同的长度; 比较第一项和最后一项: 如果两个数组项不同,则数字越大表示版本号越大 如果相同,则继续比较以下项目; 如果数组中的所有项目都相等,则两个版本相等。 测试用例 version1 version2 result 2 1 &gt; 1.0.0 1 = 1.0 1.0.0 = 1.2.42 1.2.41 &gt; 1.1.56789 1.2.0 &lt; 1.10 1.2 &gt; 1.20 1.150 &lt; 18.04 18.4 = 7.010 …

16
罗马军盾
沙盒帖子(已删除) 古老的罗马军队在世界范围内非常有名。在这些阵型中,罗马军团以几何形状(通常是矩形)分组,使用盾牌保护侧翼及其上半部分。内部位置的军团士兵将上盾放置在头顶上方,侧面的军团士兵携带2个或多个盾牌:一个用于保护上半部分,一个或多个盾牌用于保护侧面(如果有人在角落里)他有3个盾牌,如果有人一个人有5个盾牌,是的,我知道一个人不可能带5个盾牌,但是他们以某种方式做到了。利用这一阵型,所有罗马军团保护自己,并成为当时最坚强的对手。 历史告诉我们,有一位罗马将军说,最好的编队形状是正方形(行和列的军团人数相同)。问题在于弄清楚他应该分裂多少个编队(和规模),以便: 不要将任何军团排除在编队之外(尽管他承认只有一个军团编队) 减少所需的防护罩数量 这位将军在做一些数学和计算后,得出完成这两个条件的最佳方法是从可能的最大平方开始,然后重复直到没有军团成员离开为止。 例: 如果他的军队中有35个军团, 一个5x5的军团正方形(这是可能的最大正方形)。 与其余军团一起(10) 3x3正方形 与其余军团一起(1) 1x1正方形。 最后,它看起来像这样: 5x5 * * * * * 3x3 * * * * * * * * 1x1 * * * * * * * * * * * * * * * * * * * * …
26 code-golf  matrix 

6
两打接吻数近似
给定一个从1到24的数字,请根据目前的知识输出接吻数字(某些数字会有一个以上的可接受输出)。几何知识不是必不可少的,因为下面列出了所有输出。 从Wikipedia页面上的Kissing Number问题: 接吻数定义为不重叠的单位球的数量,可以将它们排列成每个都接触另一个给定的单位球 也就是说,给定一个单位球,在没有任何单位球重叠的情况下,还有多少个单位球可以接触它?该问题将在N维空间中提出,其中一个球体被理解为N-1维球体。 例如: 在二维空间中,一个单位圆可以触摸其他6个单位圆。 在3维空间中,一个单位球可以接触其他12个单位球。 Wikipedia页面列出了1到24维空间的值。但是,其中一些尚不准确,因此仅给出了下限和上限。在此复制该表,以便无论将来由于新的证明而缩小范围,该表都将保持不变。即使将来修改了Wikipedia页面,也将根据此固定表来判断解决方案。 界限表 Dimension Lower bound Upper bound 1 2 2 2 6 6 3 12 12 4 24 24 5 40 44 6 72 78 7 126 134 8 240 240 9 306 364 10 500 554 11 582 870 12 840 …

11
显示剩余电量百分比
显示电池剩余电量,以最大电量的百分比表示 请记住,如果您无法在手机,计算器等上运行代码,则可能至少可以在笔记本电脑上安装环境。如果您绝对不能在装有电池的设备上运行,那么很遗憾,您的语言不符合要求,因为您没有打印有用的价值。 您必须在屏幕上显示结果。从理论上讲,这对于用户检查电池是一种方便的工具。将电池电量百分比写入文件太笨拙,需要用户随后检查文件。因此,在屏幕上显示是规范的一部分,默认IO不能覆盖它。就是说,您可以认为没有什么可以阻止STDOUT之类的东西以通常的方式显示在屏幕上。 如果操作系统已经一直在屏幕上显示电池电量百分比,就像在许多手机上一样,这并不意味着您有一个零字节的解决方案。您必须假定不存在内置显示器,然后在其他位置再次显示电池电量百分比。 编辑:正在打开输出格式。您可以自由显示仅显示百分比的数字,也可以显示带有一些额外输出的数字。 Edit2:代表百分比的数字必须出现在输出中的已知位置,距离输出末端不超过50行,并且该位置在两次调用之间不应更改。代表百分比的数字必须与其他输出分开,每边至少要有一个非数字字符。 供参考的是更改之前的旧输出格式: Remaining battery is ddd% 要么 Remaining battery is ddd percent
26 code-golf 

12
查找纵火犯的摇篮曲
想象一下一个纵火犯在城镇中走来走去,并按照一种非常特定的方式挑选受害者(或者,想象一下一只蜜蜂在花园里飞来飞去,并按照一种非常特定的方式挑选花朵进行花粉授粉)。假设城镇是一个N×N矩阵,其中N是大于或等于2的整数。纵火犯从左上角开始,依次将房屋M点设置在房屋前方(其中M是他们当前所在房屋的编号),同时按顺序更改每次火灾后房屋的移动方向东⟶南⟶西⟶北⟶东⟶南...依此类推。该摇篮曲纵火犯的价值是使他们离开城镇的M值(即,他们在停止憎恶之前所参观的最后一所房屋)。通过示例更容易理解。以以下矩阵为例: 3 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 1 1 1 1 我们从左上角开始,所以M = 3(X标记纵火犯的当前位置和先前位置): X 2 3 2 7 3 1 4 1 6 2 5 3 1 1 4 4 3 2 4 1 …

8
互相攻击皇后区
假设一个8x8的棋盘用任意两个不同的值表示,一个值是一个空的正方形,另一个值是一个皇后。在以下示例中,我将0用作空白方块,将1用作皇后。例如: 是(谁)给的 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 1 0 1 0 1 0 1 0 0 0 1 1 0 0 1 0 1 1 0 0 0 1 0 0 0 …

30
正交对角台阶
在2D矩阵中导航是一个常见的问题。我们已经看过很多次了,以后还会再见。因此,让我们帮助未来,开发最短的解决方案,以在2D矩阵中生成所有八个可能的步骤。 挑战 您的代码必须以任何顺序输出以下8对-1,0,1: (0,1) (0,-1) (1,0) (-1,0) (1,1) (1,-1) (-1,1) (-1,-1) 规则 没有输入。 输出顺序不相关 输出灵活。对数字只需要区分即可 这是代码高尔夫球,因此最短答案以字节为单位

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.