Questions tagged «code-golf»

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

3
嘶嘶声光年
在最近在PPCG上发布了许多(两个?)与FizzBu​​zz相关的挑战之后,我很想提出自己的挑战。看... 嘶嘶声光年 编写一个程序或函数,该程序或函数需要一个整数,n并打印出FizzBuzz可以被15整除的Fizz任何数字,可以被3整除的Buzz任何数字以及可以被5整除的任何数字,直到(包括)n。所有输出i必须在换行符之后。但是有一个转折! 对于您的第三次打印Buzz,Buzz Lightyear最终会注意您的呼叫,并在程序中崩溃。然后,他介绍了自己-但是由于崩溃着陆,他说的一些话与程序的输出混杂在一起: Buzz Lightyear, Space Ranger, Universe Protection Unit. FizzBuzz Lightyear, Space Ranger, Universe Protection Unit. (也就是说,仅附加 Lightyear, Space Ranger, Universe Protection Unit.到Buzz或FizzBuzz-否则将显示其他内容。请注意前导空格) 然而,巴斯光年,是太空游侠他,有很敏锐的听力,所以印刷FizzBuzz将会对你的计Buzz计数。 然后,Buzz到处徘徊,以保护您的计算机免受所有有害输出的攻击,直到您击中另一个可被5整除的数字(或15,因为这些数字也可被5整除)。这意味着直到必须再次打印Buzz(或FizzBuzz),您才完全不打印任何内容。 当您最终达到该条件时,Buzz就会离开: To infinity and beyond! 示例输出 这是预期的输出n = 25:(注意它如何跳过16到19) 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 …
9 code-golf 

3
朝鲜语字典顺序
目标 给定一串韩文音节,按朝鲜语字典顺序对字符进行排序。 韩文音节简介 朝鲜文(한글)是世宗大王发明的朝鲜文书写系统。韩文音节分配在Unicode点U + AC00 – U + D7A3中。韩文音节由初始辅音,元音和可选的最终辅音组成。 初始辅音为: ㄱ ㄲ ㄴ ㄷ ㄸ ㄹ ㅁ ㅂ ㅃ ㅅ ㅆ ㅇ ㅈ ㅉ ㅊ ㅋ ㅌ ㅍ ㅎ 元音是: ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ …

6
亚像素缩放
您的任务是拍摄24 BPP sRGB图像,并将同一图像放大3倍后输出为红色,绿色和蓝色子像素。生成的图像将完全由纯黑色,红色,绿色和蓝色像素组成。 源图像中的每个像素在缩放时都会产生9个子像素的排列,这些子像素可以打开或关闭(即它们各自的颜色或黑色)。具体安排使用红色,绿色和蓝色的三列,顺序如下: (请注意,这些“像素”上的边框仅用于演示。) 由于这9个子像素中的每一个只能打开或关闭,因此您将必须对输入图像进行量化,并使用不同的子像素图案来实现3级亮度。 对于图像中的每个子像素: 对于0-74的色阶,所有子像素应为黑色。 对于颜色级别75-134,中间子像素应为相应的颜色,其他两个应为黑色。 对于135-179的色阶,中间的子像素应为黑色,而其他两个应为各自的颜色 对于180-255的色阶,所有三个子像素应为各自的颜色 我选择这些级别范围是因为这些恰好看起来不错 将此变换应用于图像中的每个像素,然后输出子像素放大的图像。 单像素示例 rgb(40,130,175)将产生以下模式: rgb(160,240,100)将产生以下模式: 完整图片示例 图片来自维基百科 规则和注意事项 输入和输出可以采用任何方便的格式,无论是实际的图像文件还是RGB值列表(可能是嵌套的)。 您可以假设像素位于24BPP的sRGB色彩空间中。 打高尔夫球快乐!

3
最小成本流问题
甲流网络是一个有向图G = (V, E)具有源顶点s ϵ V和宿顶点t ϵ V,并且其中每一个边缘(u, v) ϵ E上的曲线图(连接节点u ϵ V和v ϵ V)具有与其相关联的2个量: c(u, v) >= 0,边缘的能力 a(u, v) >= 0,通过边缘发送一个单位的成本 我们定义一个函数0 <= f(u, v) <= c(u, v)为通过给定边的单位数量(u, v)。因此,对于一个给定边缘的成本(u, v)是a(u, v) * f(u, v)。的最小代价流问题被定义为在最小化对于给定的流量所有边缘的总成本d,由下面的量给出: 以下约束适用于该问题: 容量要求:通过给定边的流量不得超过该边的容量(f(u, v) <= c(u, v))。 倾斜对称:当方向相反时,通过给定边缘的流动必须是反对称的f(u, v) = -f(v, u)。 流保护:净流量到任何非汇聚非源节点必须为0(对于每个u ∉ {s, …

6
帮助诺文模拟重力!
诺特温想研究在均匀重力场中从高处抛出的物体的运动学,但是不幸的是,他没有技术上的可能性去足够高的地方并在跌落时观察物体。但是谁不想看到科学的进步,那么……让我们来帮助Notwen建立一个重力模拟器吧! 物理背景 物体从高处掉落 hhh(没有初始速度)在均匀的引力场中,而忽略了诸如风阻或风等大气影响,会获得速度并随着时间的推移而加速向地面移动。单位时间内速度的这种“变化率”称为重力加速度。在地球表面附近,它大约等于g≈9.8ms2g≈9.8ms2g\approx9.8\frac{m}{s^2},但出于此挑战的目的,我们将使用该值 10ms210ms210\frac{m}{s^2},意味着一秒钟内一个物体的速度增加了大约 10ms10ms10 \frac{m}{s}。考虑身高hhh,是的倍数 100m100m100m 并想象将那个高度分成相等的间隔,每个间隔 100100100米长。Notwen想要测量物体落入每个间隔所需的时间,因此这也是我们要计算的目标。现代运动学 -跳过技术知识-告诉我们: Δhk=vktk+12gt2kΔhk=vktk+12gtk2\Delta h_k=v_kt_k+\dfrac{1}{2}gt_k^2 哪里 Δhk≡Δh=100mΔhk≡Δh=100m\Delta h_k\equiv\Delta h=100m 对于的所有值 kkk 就我们而言 vkvkv_k 是我们开始时的初始速度 kthkthk^\text{th} 间隔和 tktkt_k 是持续时间 kthkthk^\text{th} 时间间隔(仅供参考,索引从 000 与 v0=0v0=0v_0=0)。我们也知道vkvkv_k 具有以下表达式: vk=2g(Δh0+Δh1+⋯+Δhk−1)−−−−−−−−−−−−−−−−−−−−−−−−√=2gkΔh−−−−−−√vk=2g(Δh0+Δh1+⋯+Δhk−1)=2gkΔhv_k=\sqrt{2g(\Delta h_0+\Delta h_1+\cdots+\Delta h_{k-1})}=\sqrt{2gk\Delta h} 在数值上,我们得到 vķ=2000 千-----√米svk=2000kmsv_k=\sqrt{2000k}\frac{m}{s} 并插入第一个方程并求解 Ťķtkt_k 给 Ťķ= 25–√(k + 1----√-ķ--√)小号(*)(*)tk=25(k+1−k)s\color{red}{\boxed{t_k=2\sqrt{5}\left(\sqrt{k+1}-\sqrt{k}\right)s}}\tag{*} 因此,物体经过第一个间隔(k = 0k=0k=0)在 …

4
它是经过有效修改的UTF-8吗?
UTF-8是一种以可变宽度格式编码Unicode代码点的相对简单的方法,这样它就不会轻易混淆不了解Unicode的代码。 UTF-8概述 字节通常在1-0x7F(含)范围内 具有位模式10XX XXXX的字节被视为连续字节,其中六个最低有效位用于编码部分代码点。除非前一个字节期望它们出现,否则它们不得出现。 具有模式的110X XXXX字节之后需要一个连续字节 具有模式的1110 XXXX字节之后需要两个连续字节 具有模式的1111 0XXX字节之后需要三个连续字节 所有其他字节均无效,并且不应出现在UTF-8流中的任何位置。5、6和7字节的簇在理论上是可能的,但出于此挑战的目的而不允许。 超长编码 UTF-8还要求用最少的字节数表示一个代码点。可以用更少的字节表示的任何字节序列都是无效的。修改后的UTF-8向其中添加了一个例外,即空字符(U + 0000),应将其表示为C0 80(十六进制表示),并且不允许空字节出现在流中的任何位置。(这使其与以null终止的字符串兼容) 挑战 您将要编写一个程序,当给定一个字节字符串时,该程序将确定该字符串是否表示有效的Modified UTF-8,如果有效,则返回真实值,否则返回假值。请注意,您必须检查超长编码和空字节(因为这是Modified UTF-8)。您不需要解码UTF-8值。 例子 41 42 43 ==> yes (all bytes are in the 0-0x7F range) 00 01 02 ==> no (there is a null byte in the stream) 80 7F 41 …

4
ASCII艺术H树
一个^ h树是分形树结构,用一条线开始。在每次迭代中,将T分支添加到所有端点。在这个挑战中,您必须创建每第二个 H树级别的ASCII表示。 在第一级只需包含三个连字符减号字符: --- 下一级是递归构造的: 创建上一个级别的副本的2x2矩阵,以三个空格或三行分隔。 将副本的中心与H形式的ASCII艺术线条连接起来。-用于水平线,|垂直线以及+线彼此相遇的地方。 第二级 -+- -+- | | +-----+ | | -+- -+- 第三级 -+- -+- -+- -+- | | | | +--+--+ +--+--+ | | | | | | -+- | -+- -+- | -+- | | +-----------+ | | -+- | -+- -+- …

1
二进位转置
与大多数APL符号一样,⍉当用一个参数(移调)和两个参数(二进位转置/重排维)调用时,含义不同。这个挑战与后者有关,后者的行为类似于numpy.moveaxisPython或permuteMATLAB,但功能更强大。 order ⍉ A什么时候order有不同的条目 当的所有成员order都不同时,order ⍉ A等效于: numpy.moveaxis(A, tuple(range(len(A.shape)), order) 在Python中,或 permute(A,order)在MATLAB中。引用后者的文档: B = permute(A,order)重新排列A的尺寸,以便它们按矢量顺序指定的顺序。所得数组B具有与A相同的值,但访问任何特定元素所需的下标顺序均按顺序指定进行重新排列。 例如,假设A是一个3D数组,然后让B ← (2 0 1)⍉A。那么B B[x0,x1,x2] = A[x2,x0,x1]对所有人来说x2,x0,x1 order ⍉ A什么时候order重复输入 当order有重复的条目时,我们取数组的对角切片。例如,让A为2x3x4数组。B ← (0 0 1)⍉A沿着对角线切片A来制作B这样的图像B[x0,x1] = A[x0,x0,x1]。请注意,这B是一个2x4数组:如果它是3x4,则需要设置B[2, x1] = A[2, 2, x1]超出的范围A。一般情况下k的第N维B将所有的最小A.shape[i]这样order[i] = k。 例 考虑order⍉A其中order = [2, 1, 0]A为3x4x5 的二进位转置 A = [[[ …

4
计算切块的角,边和面
来自此沙盒帖子 这是从八年级学生的数学测验中得到的启发 介绍 我们有一个具有以下角的立方体 A(0, 0, 0) B(1, 0, 0) C(1, 1, 0) D(0, 1, 0) E(0, 0, 1) F(1, 0, 1) G(1, 1, 1) H(0, 1, 1) 这个立方体显然有8个角,12个边和6个面。如果现在我们切除角G,以使我们的切割平面正好穿过每个相邻原始边的中间,我们将添加2个新角,3个新边和一个新面。请欣赏此手绘艺术品,以更好地进行说明 输入项 给定一个角列表(在本示例中由AH标识),该列表将被切除,计算出新的角,边和面数量。 您可以按照自己喜欢的任何形式进行输入,只要它响应相同的角即可(例如,可以使用1-8或0-7代替AH,可以将其假定为列表,csv等)。 您可以假定列表是不同的(每个角最多显示一次),但它可能为空。该列表将永远不会包含不存在的角。 输出量 输出三个数字,分别对应于角,边和面的数量。明确允许以列表形式输出。允许尾随空格 例子 {} -> 8, 12, 6 (empty list) {A} -> 10, 15, 7 {A,C} -> …
9 code-golf 

21
比较四个整数,根据最大值返回单词
该函数应该采取四个整输入(a,b,c,d基于其值等于最大的四个),并返回一个二进制字。 返回值将在1和之间0xF。 例如: a = 6, b = 77, c = 1, d = 4 返回2(二进制0010;仅将第二最低有效位设置b为唯一的最大值) a = 4, b = 5, c = 10, d = 10 返回0xC(二进制1100;第三个和第四个最低有效位设置对应于c并d等于最大值) a = 1, b = 1, c = 1, d = 1 返回0xF(二进制1111;因为所有值均等于最大值,所以设置了所有四个位) 这是一个简单的实现: int getWord(int a, int b, int c, …

3
电路可能吗?
编写一个接受输入的程序或函数:所有可用电阻器和一个电阻值,并输出一个真实值,该值表示是否可以使用这些电阻器获得电阻。 规则: 任何输入格式都可以。 至少会有1个可用电阻,并且您的程序应输出至少10个可用电阻。 所有可用电阻器的电阻和所需电阻将为正整数。 对于可用电阻器,如果也可以使用小数点值,则所需电阻可能是近似值(请参见示例) 输出应为“可能”和“不可能”的任何2个唯一值。 电阻可以任何方式连接。 串联电阻:对于串联的n个电阻:结果= R1 + R2 + R3 + .... Rn 并联电阻:对于n个并联电阻:结果= 1 /(1 / R1 + 1 / R2 + 1 / R3 + .... + 1 / Rn) 该电路可能不需要所有电阻来获得所需的电阻(如果是这种情况,则输出True)。 优胜者: 这是代码高尔夫球,所以最短代码获胜。 例子: R List 110 220,220 -> True 440 220,220 -> True …

7
魔术:聚会,花钱买法术
要获得更多的MtG优点,请执行以下操作:魔术:具有能力的聚会战斗 前提: 在《魔法:汇聚》中,您可以通过按所需数量的土地支付法术力费用来施放咒语。这些土地可​​以产生以下五种颜色之一: 白(W) 蓝色(U) 黑色(B) 红色(R) 绿色(G) 成本由两部分组成:一个数字(即通用的法术力要求)和一系列代表彩色法术力要求的符号。该数字是普通的法术力费用,可以使用任何颜色的法术力来满足它,例如(3)可以用支付WGG。这些符号是特定颜色的1:1要求。例如,WWUBR将需要2个白色法力,1个蓝色,1个黑色和1个红色。通用部分将始终位于彩色部分之前。提醒一下,这(0)是有效费用,必须处理。 您可以拥有完全通用的成本或完全彩色的成本,或两者都有。例如,以下卡牌的费用为4BB,并用4点法术值色和2点黑法术值支付: 处于挑战中的土地将各自产生一个法力值。但是,我们将考虑可以产生多种颜色但仍然只产生1点法力的土地。例如,G将产生绿色的法术力,WG可以产生1个白色或1个绿色。 输入: 系统将为您提供两个输入,一张卡的费用和一张土地清单。 卡的成本可以是字符串,也可以是包含数字和彩色部分字符串的元组。如果没有通用部分,则可以用0填充字符串/元组。 土地列表将是一个字符串列表,其中每个字符串都是给定土地可以生产的。此列表可以为空(您没有土地)。您也可以使用位掩码逻辑将此列为整数列表,但如果这样做,则发布您的方案。如果重要的话,订购也取决于您,否则将按WUBRG顺序进行。 #Example input formats "4BB", ("WG","B","B") # (4,"BB"), (7,3,3) #Both should return falsy 输出: 一个truthy值,如果你能成功地给支付土地的成本和falsey价值,如果你不能。 规则: 您将获得有效的输入保证 假定法力值始终为“ WUBRG”。如果您想要其他顺序,请在答案中注明。 颜色将始终按成本分组,例如“ WWUBBRG” 输入将使用全部大写或全部小写的形式。 您应该能够处理正则表达式127[WUBRG]{127}和254个土地。 禁止标准漏洞 这是 代码高尔夫球,每种语言的最短答案胜出 例子: "0", ("") => 1 "1BB", ("WG","B","B") => 1 "BB", …

2
Python:交错插入两个列表中项目的最短方法
我正在尝试以最短的方式(可能的字符)获得清单3。 清单1和清单2已作为参数提供给我,并且长度相同。 l1 = [1, 2, 3, 4, 5] l2 = ['a', 'b', 'c', 'd', 'e'] 清单3应该看起来像(是的,它必须是一个清单): l3 = ['a', 1, 'b', 2, 'c', 3, 'd', 4, 'e', 5]

14
括号顺序按字典顺序
挑战来自这里也是在这里 一个ñ括号序列由ñ ( S和ñ )秒。 有效的括号序列定义如下: 您可以找到一种方法来重复擦除相邻的一对括号“()”,直到其变为空为止。 例如,如果(())是有效的括号,则可以在第二和第三位置删除该对(),然后将其变为,然后将其设为空。 )()(不是有效的括号,则在第二和第三位置删除该对后,它将变为)(并且您无法再删除 任务 给定数字n,您需要按字典顺序生成所有正确的括号序列 输出可以是数组,列表或字符串(在这种情况下,每行一个序列) 您可以使用不同的一对括号如{},[],()或开闭标志 例 n = 3 ((())) (()()) (())() ()(()) ()()() n = 2 (()) ()()

6
Codegolf Rainbow:使用反射对颜色进行排序
介绍: 在我发布了两个与Rainbow 相关的挑战:Codegolf Rainbow:使用整数数组1和Codegolf Rainbow:以黑白绘制 2之后,@ ChrisM在ASCII中做出了以下评论(Draw in Black-and-White)挑战: 也许您知道这一点,这是设计使然的(我知道彩虹也不是菱形或ascii,并且更高阶的位置会变得更加复杂),但是第二个彩虹中的颜色不是颠倒了吗? 他的确是正确的。当您看到两条彩虹时,第二条实际上是第一条的反射,因此颜色是相反的。有三个彩虹,这是实际的双彩虹,第三个彩虹是其他两个彩虹之一的反映。并且有四个,有两个彩虹,以及两个彩虹。 因此,让我们利用这个事实提出第三个相关挑战。 挑战: 输入:一个正整数n,为>=2,以及一个size的整数列表>= n+1。 输出:相同的列表顺序如下: 首先将输入列表分为大小子列表n(尾随子列表可以是范围内的任何大小[1,n])。 然后,根据子列表的数量执行以下操作m: 将m - m//2子列表的第一数量从最低到最高(其中//是整数除法)进行排序。(即具有6个子列表,前三个将按从低到高的顺序排序;具有5个子列表时,前三个按从低到高的顺序排序。) 将m//2子列表的最后数量从最高到最低排序(其中//是整数除法)。(即具有6个子列表,后三个将按从高到低的顺序排序;具有5个子列表,后两个将按从高到低的顺序排序。) 将所有子列表合并在一起,再次形成一个列表 例子: 输入:n=7和[3,2,1,-4,5,6,17,2,0,3,5,4,66,-7,7,6,-5,2,10] 步骤1:[[3,2,1,-4,5,6,17],[2,0,3,5,4,66,-7],[7,6,-5,2,10]] 步骤2:[[-4,1,2,3,5,6,17],[-7,0,2,3,4,5,66],[10,7,6,2,-5]] 步骤3 /输出:[-4,1,2,3,5,6,17,-7,0,2,3,4,5,66,10,7,6,2,-5] 输入:n=4和[7,4,-8,9,3,19,0,-23,-13,13] 步骤1:[[7,4,-8,9],[3,19,0,-23],[-13,13]] 步骤2:[[-8,4,7,9],[-23,0,3,19],[13,-13]] 步骤3 /输出:[-8,4,7,9,-23,0,3,19,13,-13] 挑战规则: 整数输入n保证大于1。 整数列表的大小保证大于n。 尾随子列表可以小于n(可以在示例和测试用例中看到)。 I / O格式在任何合理的格式中都是灵活的。可以是整数或小数的列表/数组,逗号/空格/换行符分隔的字符串,整数流等。(输出可能不是步骤2的列表的2D列表。步骤3将其展平为单个列表是这项挑战所必需的。) 通用规则: 这是 代码高尔夫球,因此以字节为单位的最短答案会获胜。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。您的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 …

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.