Questions tagged «code-golf»

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

14
数字安全
编写程序,确定一个周期为正的整数序列是否具有以下性质:对于n该序列中出现的每个整数,n两次连续出现之间没有比其他整数多的整数了n。 例如,2, 3, 5, 2, 3, 6, 2, 3, 5, 2, 3, 6, ...确实具有此属性:的每对连续出现2在它们之间最多具有两个整数(例如2, 3, 5, 2和2, 3, 6, 2;每对的连续出现3在彼此之间最多具有三个整数;对于5和相同6。 但是,2, 3, 5, 2, 3, 4, 2, 3, 5, 2, 3, 4, ...它不具有此属性:的两个连续出现4,即4, 2, 3, 5, 2, 3, 4之间有四个以上的整数。 输入:正整数周期序列的合理表示。例如,诸如的有限列表{2, 3, 5, 2, 3, 6}可以代表2, 3, 5, 2, 3, 6, …

30
交换平价
任务 给定正整数n,则输出n+1if n为奇数,输出n-1if n为偶数。 输入项 一个正整数。您可以假定该整数在该语言的处理能力范围内。 输出量 正整数,如上所述。 测试用例 input output 1 2 2 1 3 4 4 3 5 6 6 5 7 8 8 7 313 314 314 313 计分 这是代码高尔夫球,因此最短答案以字节为单位。 有标准漏洞。 参考文献 OEIS A103889
22 code-golf  number 

12
高尔夫简单代码挑战:角色模式!
在此挑战中,您会收到一个字符串作为输入,例如包含X,Y和Z的字符串。“ XYZZ”。X,Y和Z代表特定字符。然后将此模式与第二个字符串输入进行比较。如果模式在第二个输入中作为子字符串存在,则返回True,否则返回False。在单词中找到模式后,程序将停止搜索并返回True。 例子 模式:“ XXYY” succeed ---> True (pattern found: ccee) success ---> False (pattern not matched) balloon ---> True (pattern found: lloo) 模式:“ XYXYZ” bananas ---> True (pattern found: nanas) banana ---> False (pattern not found) 注意:这不是实际输入。这是程序应如何工作的示例。您的程序应输出True或False或其他Truthy / Falsy值。 其他重要/有用信息 模式不需要包含X,Y和Z,它可以包含X和Y,或者甚至(尽管有些无意义)仅包含X。 该模式不能为空,但不会用作测试用例。 搜索字符串将不为空,并且将为小写。 模式中X,Y和Z的字母顺序无关紧要。 X,Y和Z 必须是唯一字符。 您可以使用任何所需的库。 分数由代码大小(以字节为单位)确定。最低分获胜。 祝好运!
22 code-golf 

11
让我们做一些位置运算!
从维基百科文章: 位置算术(拉丁算术,localis)是加法(非位置)二进制数字系统,约翰·纳皮尔在其《犹太论》(1617)中将其作为一种计算技术进行了符号和棋盘状网格的探索。 什么? 位置数字是一种使用字母书写数字的方式。 二进制符号尚未标准化,因此Napier使用他所谓的位置数字来表示二进制数字。Napier的系统使用符号值表示法来表示数字。它使用英语字母表中的连续字母来表示2的连续幂:a = 2 ^ 0 = 1,b = 2 ^ 1 = 2,c = 2 ^ 2 = 4,d = 2 ^ 3 = 8,e = 2 ^ 4 = 16,依此类推。 一个例子 ab =以10为基数的1 + 2 = 3 aabb = 1 + 1 + 2 + …

16
提取图像的RGB通道
在给定图像的情况下,要么作为输入(可能是RGB三元组),要么使用文件名作为输入(您可以假定图像具有特定的文件名,可能没有扩展名),则输出表示图像的单个颜色通道的图像。 您还将接受另一个输入,代表要输出的通道。输入可以是任何3个不同的符号之一。但是,符号必须是字符串或数字。但是,您不能将矩阵应用于输入数组。(例如{1, 0, 0},或{0, 1, 0})。 您将输出<input>输入图像的通道。您既可以将其保存到文件中,也可以输出一组RGB对。 您的程序对图像的大小(以px为单位)应该没有限制,并且必须支持.png,.jpg/ .jpeg/ .JPG或RGB三胞胎作为图像格式。(但是它可以支持任意数量) 测试用例: 红色通道: 绿色通道: 蓝色频道: 还有另一个测试用例,完全是红色的。 原始照片,红色,绿色和蓝色。(警告:看得太久的普通和红色通道太痛了) 另外2个测试用例: 原始,红色,绿色,蓝色。 原始,红色,绿色,蓝色。 后两个测试用例来自所有颜色的图像。

13
查找数字并计算输出
目的 给定的输入列表中6不同的数字,发现3个数字a,b并且c使得a × b = c,与a具有2位,b具有1位和c具有3个位数。以一种更直观的方式,您的程序必须在该图像的框中排列这6位数字: 如果存在多个解决方案,则可以输出其中任何一个。 输入项 6个不同的数字。您可以根据自己的语言以任何合理的方式使用它们。 输出量 3号a,b和c。只要将3个数字分开并始终以相同的顺序打印(但不一定按顺序a, b, c),输出格式就相对自由。 测试用例 1, 2, 3, 4, 5, 6 -> 54,3,162 2, 3, 4, 5, 6, 7 -> 57,6,342 or 52,7,364 计分 以字节为单位的最短代码获胜。
22 code-golf  math 

12
绘制一个星号模拟时钟N小时
挑战: 创建一个函数或程序,该函数或程序将接受代表小时的输入N(0到24之间的数字)。 输出应从显示小时N的星号中提取一个模拟时钟。 🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛🕐🕑🕒🕓🕔🕕🕖🕗🕘🕙🕚🕛 笔记: •分针必须比时针长(就使用的星号而言) •分针必须至少有两个星号。 •正午,3pm,6pm和9pm将始终正交。按度数排列时,中间小时的输出应与一天中的小时顺序相同。我的意思是中午时针为0º,在下午3点时针为90º,因此对于您的1pm和2pm输出情况,必须满足以下条件: 0pm_deg < 1pm_deg < 2pm_deg < 3pm_deg。除此规则外,实际的度数可以是您决定的任何值,显然它将根据字体和其他本地因素而变化。 •时针和分针之间的连接点是任何一种圆形/椭圆形的Unicode字符。 o, O, •, 0, etc. 输入/输出示例(可能会因工程图样式而异) N = 3; * * * O * * N = 4; * * * O * * N = 5; * * * 0 * * N …

11
标记UKMT IMC论文
我今年做了IMC。这里还有其他人吗? 在UKMT中级数学挑战赛论文中,有25个问题。如果正确回答,前十五个问题将给您五个分数。对于其他十个问题,您将获得正确的六分。在最后十个问题中,如果您弄错了它们,您将失去分数!对于第十六至二十个问题,您将失去一分;对于最后五个问题,您将失去两分。如果您将问题留为空白,则不会授予或扣除任何分数。不会因前15个问题中的任何一个错误而扣分。本文是多项选择;您可以为每个问题从A,B,C,D和E中选择任何答案。每个问题始终只有一个正确答案。 创建一个使用两个字符串并输出分数的程序/函数。第一个字符串将是您对本文的回答。如果跳过问题,请使用空格,空字节或下划线。否则,请使用字母A,B,C,D或E作为答案。您可以输入为大写或小写。第二个字符串将是本文中每个问题的正确答案。然后,您的程序/功能将输出一个分数。使您的代码简短。 测试用例: DDDDDDDDDDDDDDDDDDDDDDDDD ABCDEABCDEABCDEABCDEABCDE 15 BDBEACCECEDDBDABBCBDAEBCD BDBEACCECEDDBDABBCBDAEBCD 135 DBACBDCDBAEDABCDBEECACDC_ DBADBDCDBAEDABCDBEEDACDCA 117 _________________________ DABDABDABDABDABDABDABDABD 0 DBADBDCDBAEDABCD_E__A__C_ DBADBDCDBAEDABCDBEEDACDCA 99 _______________BBBBBBBBBB AAAAAAAAAAAAAAAAAAAAAAAAA -15
22 code-golf 

30
获取一个具有不同数字的随机n位数字,第一个不是0
我读了这个问题,并认为这将是一个不错的挑战。 任务 给一个输入0<n<10生成一个随机数 正好n位数字 第一个不是 0 所以 f(n)>10**(n-1)-1 不同的数字 获奖标准 这是代码高尔夫球,因此最短的代码获胜。 随机 我的意思是随机分布均匀。因此,从程序的角度来看,每个可能的数字都有相同的机会。如果您使用的语言具有一个奇怪的随机数生成器,则可以使用该生成器。 例 要从中随机选择的值的列表n=2是: [10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 45, 46, 47, 48, …
22 code-golf  number  random  grid  game  king-of-the-hill  javascript  code-golf  arithmetic  statistics  code-golf  math  code-golf  math  code-golf  string  palindrome  code-golf  string  interactive  code-golf  quine  polyglot  code-golf  string  stack-exchange-api  code-golf  number-theory  decision-problem  code-golf  tips  code-golf  string  internet  code-golf  graphical-output  image-processing  fractal  code-golf  ascii-art  geometry  hexagonal-grid  code-golf  string  restricted-source  hello-world  code-golf  game  code-golf  cipher  code-golf  permutations  cops-and-robbers  permutations  cops-and-robbers  code-golf  internet  stack-exchange-api  code-golf  ascii-art  random  code-golf  tips  code-golf  ascii-art  code-golf  code-golf  kolmogorov-complexity  code-golf  string  unicode  code-golf  number  sequence  primes  palindrome  code-golf  game  decision-problem  code-golf  math  geometry  code-golf  graphical-output  interactive  code-golf  set-partitions  code-golf  number  arithmetic  restricted-source  code-golf  decision-problem  python  recursion  code-golf  ascii-art  code-golf  source-layout  code-golf  function  recursion  functional-programming  code-golf  game  combinatorics  permutations  code-golf  string  file-system  code-golf  string  hashing  code-golf  stack-exchange-api  code-golf  string  code-golf  math  number  arithmetic  polyglot 

4
将网格拆分为网格
介绍 有一个小村庄,只有几栋房子和空旷的田野。当地官僚希望将村庄分成很多部分,以便每个地块都包含一所房子,并且地块的边界形成一个漂亮的直线网格。您的任务是确定是否可行。 任务 您的输入是一个矩形的二维位数组;1代表房屋,0代表空字段。它的大小将至少为1×1,并且将至少包含1个1。您可以采用任何合理格式的输入(嵌套的整数列表,字符串列表,多行字符串等)。 您的程序将确定是否可以使用水平和垂直直线将数组划分为多个网格单元,以便每个网格单元仅包含一个1。网格单元可能具有不同的大小和形状,尽管它们始终是矩形。这些线必须从阵列的一条边缘延伸到另一条边缘。 例如,以下是数组的有效划分: 00|0010|01|1 01|0000|00|0 --+----+--+- 00|0000|00|1 01|0010|01|0 --+----+--+- 01|1000|10|1 而以下划分是无效的,因为存在没有1或多个1的网格单元: 00|0010|01|1 --+----+--+- 01|0000|00|0 00|0000|00|1 01|0010|01|0 --+----+--+- 00|1000|10|1 如果存在有效的除法,则应输出真实值,否则输出虚假值。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜。 测试用例 [[1]] -> True [[0,1],[1,0]] -> True [[1,1],[1,0]] -> False [[1,0,1],[0,1,0]] -> True [[1,0],[0,1],[0,1]] -> True [[1,0,0],[0,0,1],[0,1,1]] -> True [[1,1,1],[1,1,1],[1,1,1]] -> True [[1,0,1],[0,1,0],[1,0,0]] -> True [[1,0,0],[1,0,0],[0,1,1]] …

10
两种颜色的重叠圆
编写一个程序或函数,以您选择的合理格式接收以下输入: 两个正整数W和H定义要生成的图像的宽度和高度。 两种RGB颜色C1和C2将用于为图像着色。 形式的三元组列表,(r, x, y)用于定义在图像平面中具有半径r和中心的圆x, y。r是一个正整数,x并且y是任何整数。图像的左上像素为0, 0,x轴向右增加,y轴向下增加。 输出尺寸为W x H的图像,并用C1和C2着色,以使所有重叠圆所定义的两个相邻区域都不是同一颜色。 例如:如果输入是 W = 300 H = 200 C1 = (255, 200, 0) C2 = (128, 0, 255) Circles = (25, 50, 80), (40, 80, 120), (300, -100, 6), (17, 253, 162) 那么圆边界看起来像这样: 圆圈创建的图像中有六个不同的连续区域。每个区域必须用C1(黄色)或C2(紫色)上色,以使没有两个相邻的区域具有相同的颜色。 有两种方法可以做到这一点,它们唯一的区别是可以交换颜色: 因此,对于示例输入,这两个图像中的任何一个都是有效输出。 喜欢的东西这是因为两个黄地区彼此相邻无效的输出。 您的输出图像应遵循以下准则: 除了C1和C2,第三种中性色(例如黑色或白色)也可以用于圆形边界,只要它们的厚度不超过5像素即可。(上面的示例中存在黑色的1像素厚边界。) 但是,圆边界不是必需的。这些区域可以彼此直接相邻: …

2
生成ASCII Padovan螺旋
这是此挑战的ASCII版本。最初的职位由Martin Ender根据请求分开 介绍 类似于斐波那契数列,Padovan 数列(OEIS A000931)是一个数字序列,是通过在序列中添加前项产生的。初始值定义为: P(0) = P(1) = P(2) = 1 第0,第1和第2项均为1。递归关系如下所示: P(n) = P(n - 2) + P(n - 3) 因此,它产生以下序列: 1, 1, 1, 2, 2, 3, 4, 5, 7, 9, 12, 16, 21, 28, 37, 49, 65, 86, 114, 151, 200, 265, 351, ... 将这些数字放在一起时,将它们用作等边三角形的边长会产生一个不错的螺旋,就像斐波那契螺旋: 图片由维基百科提供 …

4
我刚刚玩什么?将吉他指法转换为和弦
相关:音乐:这和弦里有什么?,弹奏笔记,生成吉他弹片?,将数字对转换为吉他音符 给定吉他指法,输出它代表的和弦。您可以使用标准输入和输出,也可以编写返回字符串的函数。 输入的指法将分类为以下和弦之一,表示如下(如果根音为C): 大三合会: C 小三合会: Cm (主要)第七名: C7 小七: Cm7 和弦可能颠倒了,因此您不能依靠最低音为根。您也不能依靠这是现实世界中的简单指法。更一般而言,程序的输出必须忽略音高的八度,并将与同一音符(即A)相对应的所有音高均视为相等。 这是code-golf,因此以字节为单位的最短代码获胜。 输入格式 输入是一系列由6个值组成的值,这些值针对标准调音(EADGBE)中的6弦吉他的每个弦指示将在哪个弦上弹奏。这也可能表明该字符串根本没有播放。“零”品格也称为打开位置,品格号从那里开始递增计数。假设吉他有21个品格位置,因此最高品位是20号。 例如,输入X 3 2 0 1 0意味着将一根手指放在吉他脖子顶部的以下位置: (6th) |---|---|---|---|--- |-X-|---|---|---|--- |---|---|---|---|--- |---|-X-|---|---|--- |---|---|-X-|---|--- (1st) |---|---|---|---|--- 并弹奏第二至第六弦。它对应于以下ASCII标签: e |-0-| B |-1-| G |-0-| D |-2-| A |-3-| E |---| 您可以灵活选择所需的输入类型:每个品格位置可以表示为字符串或数字。未弹奏的吉他弦通常用指示X,但-1如果您更方便(例如,使用数字),则可以选择其他前哨值。可以将6个品格位置序列输入为任何列表,数组或序列类型,单个以空格分隔的字符串或作为标准输入-再次选择。 您可以依赖与上述4种和弦类型之一对应的输入。 请在您的帖子中说明您的解决方案采用哪种输入形式。 输出格式 您必须将描述指法所用的和弦的字符串返回或打印到标准输出。此字符串由串联在一起的两个部分组成。资本化问题。允许尾随空格。 第一部分表示根音的一个A,A#/ Bb,B,C,C#/ Db,D,D#/ …

9
<(“ <)鸟舞者(>”)>
您的鸟一直在瘙痒一些运动,并且讨厌一直被困在静止的位置。编写一个程序,该程序将显示一个随机跳舞的ascii鸟,并根据跳舞动作每100ms * n或200ms * n更新一次。鸟总是从舞步开始&lt;(")&gt;。 程序应接受一个输入,该输入是一个将睡眠间隔乘以(n &gt;= 0 &amp;&amp; n &lt;= 50)的数字。 100ms动作 ^(")v v(")^ ^(")^ v(")v 200ms动作 (&gt;")&gt; &lt;(")&gt; &lt;("&lt;) 额外细节 随机性不一定要统一,但是每个舞步都应该有合理的发生机会(每60个舞步中至少有1个看起来很公平,如果同一舞步连续出现两次也可以) 一次只能显示一只鸟,而不是多只鸟 允许尾随空格(但不允许其他尾随字符) 鸟应显示之前的睡眠 Python 3中的示例 import random, time, sys birds = """(&gt;")&gt; &lt;(")&gt; &lt;("&lt;) ^(")v v(")^ ^(")^ v(")v""" birds = birds.split() interval = int(input("Sleep for 100ms*")) selection …

3
我们到了吗?
我是一个时光旅行者,我迷恋时间的流逝。我特别喜欢钟针经过12时,翻动日历的下一页或所有人大喊“新年快乐”的那一刻。 请为我编写一个程序,以进度条的形式显示我从最后一刻到下一刻的距离。例如,如果我告诉它时间是09:12,它应该打印以下内容: 09:00 ####---------------- 10:00 如果我告诉它月份是1982年5月,则应打印以下内容: 1982-01 #######------------- 1983-01 我是否提到我是时光旅行者?我从0 AD的第一个毫秒到9999 AD的最后一个毫秒旅行到任何地方,因此程序需要处理该范围内的任何日期和时间。 输入项 输入将采用以下格式之一: YYYY-MM-DDThh:mm:ss.sss YYYY-MM-DDThh:mm:ss YYYY-MM-DDThh:mm YYYY-MM-DDThh YYYY-MM-DD YYYY-MM 这些是唯一需要处理的格式。每个部分将完全具有显示的数字位数,这意味着小数秒可能带有尾随零(例如.120,never .12)。该T是文字字母“T”划定从时间日期。小时是24小时制。 月和日以1为基础(请参见下文)。 无效和超出范围的输入无需处理。 根据程序员的判断,输入可能只有一个尾随换行符。 进度条数学 程序与给定输入中的最低和第二最低有效单位有关。例如,如果输入具有日级精度(例如2016-12-14),则进度条将指示输入月份中已过的天数比例与剩余的天数比例。 进度条将具有20个单位(字符),并表示将被舍入到最近的增量比例1 / 20。例如,给定2016-12-14T12:28,所述进度条显示轮(28 / 60 ×20)= 9 20的单位“填充”。 从1开始的月份和日期 尽管(例如)12月1日01位于2016-12-01,但出于计算目的,它是该月的第0天,因为截断的单位表示该天的第0小时的第0分钟的第0毫秒。换句话说,2016-12-01是0 / 31的方式,通过腊和2016-12-02是1 / 31,等等。 同样地,2016-01是一月的第0天的第0毫秒,所以在计算中它是0 / 12,该装置2016-12是11 / 12。 是的,这意味着几个月和几天永远不会完全填满进度栏。 不同的月份持续时间和leap年 不同的月份有不同的天数,并且输出必须反映出这一点,包括leap年。2017年2月6日的进度条将与2016年2月6日(或两年的1月6日)的进度条不同。 杂 …
22 code-golf  date 

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.