Questions tagged «code-golf»

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

16
一对一
挑战 给定一个正整数列表,请查找是否存在一个置换,其中每个整数占一个位,1可以创建一个由所有s 组成的二进制数。 结果二进制数中的位数等于整数列表中的最高MSB。 输出量 您的代码必须输出或返回true / falsey值,以指示是否存在这种排列。 例子 真相: 使用list [4, 5, 2]及其二进制表示形式[100, 101, 10],我们可以分别使用第三,第一和第二位来创建111: 4 -> 100 -> 100 -> 1 5 -> 101 -> 101 -> 1 2 -> 010 -> 010 -> 1 Result 111 使用list [3, 3, 3],所有数字的第一位和第二位都设置为1,因此我们可以选择一个数字作为备用: 3 -> 11 -> 11 -> 1 …

11
双射函数ℤ→ℤⁿ
从(所有整数的集合)到(例如,恒等函数)创建双射函数是很简单的。žžž\mathbb{Z}žž\mathbb{Z} 也可以创建从到(所有2对整数的集合;和的笛卡尔积)的双射函数。例如,我们可以使用表示2D平面上整数点的晶格,从0向外绘制螺旋,然后将整数对编码为与该点相交时沿螺旋的距离。Z 2 Z Zžž\mathbb{Z}ž2ž2\mathbb{Z}^2žž\mathbb{Z}žž\mathbb{Z} (使用自然数执行此操作的功能称为配对功能。) 实际上,存在以下一系列双射函数: Fķ(x ):Z → ZķFķ(X):ž→žķf_k(x) : \mathbb{Z} \to \mathbb{Z}^k 挑战 使用双射将整数映射到个整数元组的属性,定义函数(其中是一个正整数)。k f k(x )kFķ(x )Fķ(X)f_k(x)ķķkFķ(x )Fķ(X)f_k(x)ķķk 给定输入和,您的提交应返回。x f k(x )ķķkXXxFķ(x )Fķ(X)f_k(x) 这是代码高尔夫球,因此最短的有效答案(以字节为单位)获胜。 技术指标 只要满足上述条件,就可以使用任何家族。Fķ(x )Fķ(X)f_k(x) 鼓励您添加有关函数系列工作方式的描述,以及用于计算函数反函数的代码段(这不包括在字节数中)。 如果反函数不可计算就可以,只要您可以证明它是双射的即可。 您可以对语言的带符号整数和带符号整数列表使用任何合适的表示形式,但是必须允许对函数的输入是无界的。 您只需要支持最大127 的值。ķķk
23 code-golf  math  number 

25
二进制序列
给定一个二进制数A作为d> 1位数字的输入,请根据以下规则找到具有d位数字的二进制数B,以找到B的第n个数字: 如果A的第一位和第二位相等,则B的第一位为零。否则,它是一个。 如果1 <n <d,则如果A的第(n-1),第n和第(n + 1)个数字相等,则B的第n个数字为零;否则,它是一个。 如果A的第(d-1)位和第d位相等,则B的第d位为零。否则,它是一个。 规则 字符串/列表输入/输出格式很好。另一种允许的输入/输出方式是整数,后跟前一个零(或后一个零)。 使您的代码越短越好。 测试用例 00 -> 00 01 -> 11 11 -> 00 010111100111 -> 111100111100 1000 -> 1100 11111111 -> 00000000 01010101 -> 11111111 1100 -> 0110
23 code-golf  binary 

22
多个骰子辊的频率分布
给定两个正整数a和b,输出滚动a侧b模a时间并累加结果的频率分布。 如果掷骰子的每个可能序列出现一次,则频率分布会列出每个可能总和的频率。因此,频率是其和等于的整数b**a。 规则 频率必须以与频率对应的总和的升序排列。 允许用相应的总和来标记频率,但不是必需的(因为可以从所需的顺序中推断出总和)。 您不必在输出超出您的语言可表示的整数范围的情况下处理输入。 不允许前导零或尾随零。输出中仅应出现正频率。 测试用例 格式: a b: output 1 6: [1, 1, 1, 1, 1, 1] 2 6: [1, 2, 3, 4, 5, 6, 5, 4, 3, 2, 1] 3 6: [1, 3, 6, 10, 15, 21, 25, 27, 27, 25, 21, 15, 10, 6, 3, …

8
抄写员
介绍 仙人掌有各种不同的大小,形状和颜色。然而,最具标志性的仙人掌和必须在每一个西方必须是仙人掌。重要特征是它的大小和臂,它们定义了定型仙人掌的外观。 您的任务是将柱仙人掌引入ASCII世界。但是,就像在现实世界中一样,没有柱仙人掌像另一个,因此您的程序必须能够生成具有不同手臂配置的柱仙人掌。 仙人掌的例子 输入:[0b10, 0b11]([2, 3]十进制,输入长度2) _ / \ _ | | / \ | | | | | | \ \_| | \__ | \ | _ | | _ / \ | | / \ | | | | | | \ \_| |_/ / \__ __/ …

1
马里奥会落入萎缩卫星吗?(添加图)
超级马里奥银河(Super Mario Galaxy)拥有两个菱形八面体形状的*行星,它们的平台平铺,随着马里奥(Mario)的掠过而缩小。如果Mario掉入一个三角形的孔或先前触摸过的瓷砖留下的缝隙,他将被核心处的黑洞吞噬。(观看: Hurry-Scurry星系, Sea Slide星系) 图片:MarioWiki.com (您可以将行星视为一个2x2x2立方体,其面已通过2x3“桥”分离并彼此连接。) 不幸的是,由于我的控制器非常损坏,因此Mario无法跳跃,并且只能在四个基本方向上操作。此外,马里奥动作非常缓慢,即使不先离开身后的平台也无法退一步。 假设相机始终在马里奥的头顶上方,并且从2x2脸部的右下角开始: ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ M ■ ■ ■ ■ ■ ■ ■ ■ ■ 您的程序将采用一个列表或方向字符串U D L R(上,下,左,右),以一系列步骤代表Mario在地球上的行走。该程序可以输出两个截然不同的输出之一:一个代表马里奥还活着并在行走,另一个代表马里奥在行走中的某个地方掉入了收缩卫星。 RR: ■ ■ RRD: ■ ■ RRL: ■ …

30
可靠的分选
给定一个包含至少3个不同条目的正整数列表,请输出该列表的排列,该排列未按升序或降序排序。 例子 1,2,3 -> 2,1,3 or 3,1,2 or 1,3,2 or 2,3,1 1,2,3,3 -> 2,1,3,3 or 3,1,2,3 or 1,3,2,3 etc.. 感谢@Arnauld和@NoOneIsHere的标题!

7
伪除数和多态
任务 在这个挑战中,您的任务是用编程语言L编写一个程序,该程序采用正整数n,并输出n的适当除数之和(OEIS上的序列A001065)。它应该返回任何正确的输出1≤N≤10 000。以下是前10个输出: 0, 1, 1, 3, 1, 6, 1, 7, 4, 8 此外,您的程序必须是假的polyglot,这意味着以下内容。它是另一种编程语言的有效程序L”,并且对于每个输入1≤N≤10(测试用例以上),则返回的适当的除数的总和Ñ,但存在一些11≤Ñ000≤10为其它不会返回正确的结果。它可能会返回不正确的内容,永远循环,崩溃等。对于所有n≥11(对于其中的某些n个或仅一个),它都可能给出错误的结果。 规则和计分 您可以编写完整的程序或函数,并且可以使用两种语言使用不同的输入和输出方式。最低字节数获胜。适用标准代码高尔夫球规则。在这一挑战中,一种语言的不同主要版本或实现被认为是不同的。 请注意,如果您使用具有非ASCII编码的编程语言(如本站点上的许多语言),则两种语言都必须使用相同的字节序列。这意味着您必须在可能不同的代码页之间进行转换,或者必须对多字节Unicode字符进行惩罚。 其他测试用例 20 -> 22 36 -> 55 180 -> 366 997 -> 1 2875 -> 869 10000 -> 14211

22
环绕我,救救我
给定输入后n,您的程序或函数必须输出最小的正整数k,以便n四舍五入到的最接近倍数k大于n。 例。 给定输入20,输出值应为3: 最接近的倍数1就是20,这是不大于20。 最接近的倍数2就是20,这是不大于20。 最接近的倍数3就是21,这是大于20,所以它是输出。 测试用例 #Input #Output 2 3 4 5 6 4 8 3 10 4 12 7 14 3 16 6 18 4 20 3 22 4 24 5 26 3 28 5 30 4 32 3 34 4 36 8 38 3 40 6 42 …
23 code-golf  number 

14
我可以安顿下来吗?
在“卡坦殖民者”棋盘游戏中,有五种资源类型:砖块,原木,矿石,小麦和绵羊。建立定居点需要花费砖块,原木,小麦和绵羊。但是,您也可以交换四个相同的资源来获取不同类型的资源。例如,如果您手中有四个矿石,则可以将所有矿石换成一只羊。 您的工作是确定我是否可以建立解决方案。 你的任务 输入将是字母的顺序B,L,O,W,和S,采取任何合理的格式。这些字母对应于上面给出的五种资源类型。考虑到进行四种交易的可能性,您应该输出我是否拥有建立和解所需的资源。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 笔记 您不必输出我需要执行的交易或可以建立的结算数量。简单的“是”或“否”即可。 您可能不假定输入是按任何特定顺序进行的。特别是,您可能不会假定相同类型的资源被分组在一起,因此OBLSO,有效输入也不是。 这是决策问题,因此,只要选择的两个值是不同且一致的,就可以使用要表示“是”和“否”的任何值。 我们在这里关心的唯一规则是上面列出的规则。与其他玩家交易或在港口交易等更为复杂的卡坦定居者规则在这里无关紧要。 输入的字符(B,L,O,W,S)可以与其他的值取代,只要它是你所选择的特定的语言更容易,所以只要有五个不同的输入。如果您使用其他输入值,请在答案中指定它们。 例子 BLWS -> Yes OOOOWLB -> Yes (trade four O for a S) OOW -> No BBBO -> No (empty input) -> No BBBBLW -> No BBBBBLW -> Yes (trade four B for a S) OOOOOOOOOOOOOOOO -> Yes (sixteen …

5
触发斜槽并保护头奖
您将要参加游戏节目。挑战之一如下: 第一个房间包含大量相同的球。 第二个房间包含一系列滑槽,每个滑槽都具有一个传感器,该传感器可以计算放置在其中的球的数量。放置在滑槽中的球将无法回收。 在将一定数量的球(其触发计数)放入其中后,每个滑槽都将触发。当它触发时,它会闪烁灯光,发出声音并毫无疑问地触发它。 您必须触发N滑道才能继续下一个挑战。 您知道触发计数,但不知道计数与斜道之间的对应关系。 您有机会将球从第一个房间带到第二个房间。将球放入滑槽后,您将无法再返回更多球。 您拿到的每个球都会从累积奖金中扣除。 显然,您想确保自己能够通过挑战,但是想要最大程度地减少累积奖金损失。编写程序,函数,动词等以告诉您您需要多少个球。 例 假设触发计数为2、4和10,并且您需要触发2个滑槽才能通过。有一个策略,可以传10个球:在第一个溜槽中最多放置4个球,在第二个溜槽中最多放置4个球,在第三个溜槽中最多放置4个球。由于三个滑道之一仅在触发2个球后才触发,因此您总共只能使用10个球。没有可以保证少于10个的策略,因此这是正确的输出。 输入项 输入由一个整数触发计数的数组和一个给出要触发的溜槽数的整数组成。您可以按任意顺序输入两个输入,并且如果需要,可以输入第三个输入与数组的长度。 您可以假设所有输入均大于零,并且必须触发的溜槽数量不超过溜槽数量。 您还可以假设计数是排序的(升序或降序),只要您在回答中清楚说明即可。 输出量 输出应为单个整数,给出最佳策略所需的球数。 测试用例 格式: N counts solution 1 [2 4 10] 6 2 [2 4 10] 10 3 [2 4 10] 16 1 [3 5 5 5 5 5 5 5 5 5] 5 2 …

19
我有头生双胞胎吗?
一个整数是质数,当且仅当它是正数且正好具有2个不同的除数:1及其本身。双素数对由两个元素组成:p和p±2,它们都是素数。 您将得到一个正整数作为输入。您的任务是根据标准决策问题规则(值必须一致),根据给定的整数是否属于双胞胎对,返回真/假。 测试用例 特鲁西(双生素数): 3, 5, 7, 11, 13, 17, 19, 29, 31, 41, 43 虚假(不是孪生素数): 2, 15, 20, 23, 37, 47, 97, 120, 566 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

21
缓慢收敛的之字形
给定单个正整数作为输入,以以下形式返回收敛的之字形作为字符串列表,字符列表或换行符分隔的字符串: # # # # # # # # # # # 您可以#用任何一致的非空白字符替换。允许在每行上尾随空白,并允许尾随新行。 之字形从列开始,1每行右移一列,直到到达列n(n输入在此处)。然后,它向左移动2,然后向右移动n-1,然后向左移动3,两个边界收敛,直到锯齿形在中间列((n+1)/2)结束。 测试用例 上面的示例是的测试用例5。 以下是各个测试用例: 3 # # # # 7 # # # # # # # # # # # # # # # # # # # # # # 1 #

25
数字增加而字母减少
受此堆栈溢出问题的启发:对列表进行排序:数字以升序排列,字母以降序排列。您的任务是解决以下问题,并且由于这是code-golf,因此应尽可能减少字节。 你应该采取的对象为包含字母输入的列表(任何合理形式:string,char,等)和数字。然后,您应该将数字按升序排序,并将字母按降序排序。但是,应将字母保持在字母位置,将数字保持在数字位置。例如,如果列表为: [L, D, L, L, D, L] 输出列表应采用以下形式: [L, D, L, L, D, L] 遍历 输入: ['a', 2, 'b', 1, 'c', 3] 将数字按升序排序: [1, 2, 3] 将字母按降序排列: ['c', 'b', 'a'] 重新加入他们,但顺序保持不变: ['c', 1', 'b', 2, 'a', 3] 规则 该列表将仅包含字母和数字。 该列表可能为空。 该列表只能包含字母或数字。 如果您的语言不支持混合类型数组,则可以使用数字字符而不是数字。请注意,如果您的语言支持,则必须使用混合类型。 字母只会是[a-z]或[A-Z],您可以选择其中一个。 字母被排序为a最低,z最高,即a = 1, z = 26。 …

5
西部最快的枪
您是密西西比州西部最粗暴,最艰难,最酷的牛仔。但是,一个古怪的书呆子网站上的一个奇怪的家伙认为,将您放入随机未完成的景观并进行战斗会很酷。没关系,您仍然会赢。但是,为了帮助您赢得那些您将在书中写的艰苦的枪战,了解胆小鬼潜伏在风景中有多少子弹会很有帮助。 你如何帮助这个可怜的家伙。给定ASCII风景,找到里面的枪,并告诉他有多少枚子弹装入其中。这是枪: (X) (X\ /X) (XVX) \X/ X上图中的每个都是一个可能的子弹槽。该插槽将包含一个空格或其中一个0,O,o(可能不一致-牛仔可能在他的枪中装有不同类型的子弹)。 在景观中,总是有完全符合上述描述的一杆枪。但是,请注意,喷枪周围和内部的空间可以容纳任何东西。 输入项 您将得到一个包含可打印ASCII(而不是制表符)和换行符分隔字符串的字符串。如果愿意,您还可以列出字符串列表。字符串都将用空格填充,因此它们的长度都相同。输入将至少为4行高和7列宽。 风景中总会有一支枪。 输出量 您将输出0, O, o枪中有多少颗子弹(),因此您的输出将始终在0和之间6。 测试用例 (0) ( ) (o\ /o( \ / ) (oVo) ( V ) \o/ \ / 0 ---------------------------- //////////////////////////// //////////////////////////// /////////////(o)//////////// ///////////(0\// )////////// ////////////( Vo)/////////// /////////////\ ///////////// //////////////////////////// ---------------------------- 3 ()()()()()()()()()()()()()()()()\)/)()()()()()()()()()()()() ()()()()()()()()()()()()()()()()(V)()()()()()()()()()()()()( ()()()()()()()(\0/)()()()()()()()()()()()()()()()()()()()()( ()()()()()()()()()()()()()()()()()()()()()()()( …
23 code-golf  string 

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.