Questions tagged «code-golf»

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

7
编码霍夫曼!
否则他会怒气冲天,把你的房子炸毁! 那完全无关紧要。这个挑战实际上与霍夫曼编码有关。要点是给定文本中字符的频率被用来使其表示更短。换句话说,假设我们的字母是a通过z和空格。那是27个字符。它们中的每一个都可以仅用5位进行唯一编码,因为5位有足够的空间容纳32个字符。但是,在许多情况下(例如英语或一般语言),某些字符比其他字符更频繁。对于更频繁的字符,我们可以使用较少的位,对于较不频繁的字符,我们可以使用更多的位。如果做对了,总体上可以节省位数,并且仍然可以唯一地重建原始文本。 让我们以“这个问题与霍夫曼编码有关”为例。该文本的长度为37个字符,通常为37 * 8 = 296位,但是如果每个字符仅使用5位,则只有37 * 5 = 185位。记住这一点。 这是文本中每个字符及其频率的(排序)表,从最频繁到最不频繁(其中_代表空格)排序: _ 5 i 4 n 3 o 3 s 3 t 3 u 3 a 2 f 2 h 2 b 1 c 1 d 1 e 1 g 1 m 1 q 1 相关的最佳编码可以是: _ 101 i …

4
分配议会席位
介绍 在大选中,人们想计算每个议会席位的不变价格。这意味着N >= 0要分配席位和ns每个政党的投票清单,我们希望找到一个数字d,以便 sum(floor(n/d) for n in ns) == N 为了使事情变得有趣(更像现实世界),我们添加了两个事实: 两党可以聚集在一个“联盟”中,这样​​,“联盟”的席位就由该联盟中所有各方的票数之和决定。然后,“联盟”获得的席位以类似的方式在各方之间分配(找到除数等) 没有获得一定比例票数(例如3.25%)的政党自动获得0席,其票数不计入“同盟”。 挑战 给你: 列表列表,每个嵌套列表都包含整数(投票数),单方长度为1,“联盟”长度为2。 获得席位的最低票数百分比(又称“弹幕”的“巴”),即分数(因此3.25%表示为0.0325) 各方之间分配的席位总数(整数) 您将打印出相同的嵌套列表结构,并用议席数代替票数。 优胜者是字节数最少的代码。 角落案例: 除数可能(通常会)有一个以上。由于它不在输出中,因此它并不重要。 想象N=10和ns = [[1]],所以除数可以是0.1(不是整数) 有些案件不能得到解决,例如ns=[[30],[30],[100]],bar=0,N=20。d=7.5下限的总和从19跳到21,这是一个边界。您不希望解决这些情况。(感谢社区成员Arnauld指出此案) 输入和输出示例 一个未优化的Python3示例: from math import floor def main(_l, bar, N): # sum all votes to calculate bar in votes votes = sum(sum(_) for …

12
查找所有
介绍 在数论中,我们说一个数为kkk光滑的数,当它的主要因子最多为kkk。例如,2940是7-平滑因为2940=22⋅3⋅5⋅722940=22⋅3⋅5⋅722940=2^2\cdot3\cdot5\cdot7^2。 在这里,我们将kkk平滑对定义为两个都是kkk平滑的连续整数。7光滑对一个例子将是(4374,4375)(4374,4375)(4374,4375),因为4374=2⋅374374=2⋅374374=2\cdot3^7和4375=54⋅74375=54⋅74375=5^4\cdot7。有趣的事实:这实际上是最大的7平滑对。 斯托默(Størmer)在1897年证明,对于每kkk,只有有限的kkk平滑对,并且这一事实被称为斯托默定理。 挑战 您的任务是编写一个程序或函数,给定素数输入kkk,以您想要的任何顺序输出或返回所有kkk平滑对,而没有重复(对内的顺序无关紧要)。 请注意,对于质数ppp和qqq,假设p&lt;qp&lt;qp<q,则所有ppp平滑对也是qqq平滑对。 样品I / O Input: 2 Output: (1, 2) Input: 3 Output: (1, 2), (2, 3), (3, 4), (8, 9) Input: 5 Output: (1, 2), (2, 3), (3, 4), (4, 5), (5, 6), (8, 9), (9, 10), (15, 16), (24, 25), (80, 81) Input: …

17
将数字转换为表情符号数学[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 10个月前关闭。 在用户创建的视频游戏“保持说话且没人爆炸”模块Emoji Math中,数字被写成表情符号字符串,其中每个表情符号代表以10为基数的数字。以下是数字和表情符号之间的转换表。 Digit | Emoticon 0 | :) 1 | =( 2 | (: 3 | )= 4 | :( 5 | ): 6 | =) 7 | (= 8 | :| 9 | |: 给定一个数字,将其输出为Emoji Math编码。您可以假定没有非数字字符。 这是代码高尔夫球,因此最短的答案以字节为单位。
13 code-golf  number 

30
ASCII Meme箭头生成器
技术指标 给定一个数字n,输出大小为的ASCII“模因箭头”(大于符号,&gt;)n。 n 始终是一个大于0的正整数。 例子 n = 2 \ \ / / n = 5 \ \ \ \ \ / / / / / 样例代码 这是一个用Crystal编写的示例程序,可以返回正确的结果。以方式运行./arrow 10。 arrow.cr: def f(i) i.times { |j| j.times { print ' ' } puts "\\" } i.times { |j| (i-j-1).times { print ' …

1
交互式迷宫求解器
鲍勃被绑架,被困在迷宫中。您的工作是帮助他找到出路。但是由于这是一个非常黑暗和可怕的迷宫,他什么都看不到。他只有在碰到墙壁时才能感觉到墙壁,并且知道何时找到出口,但仅此而已。 由于他必须通过内存运行您的程序,因此它必须尽可能短。 注意:我从http://acmgnyr.org/year2016/problems.shtml中解决了这个问题,但略加修改,并亲自编写了法官程序/测试案例。 规格 这是一个交互式问题,因此您的程序将把输出输出到stdout,并接收来自stdin的响应。 招式您的程序可以输出一个right,left,down,up。 然后它将获得以下之一作为输入: wall-这意味着鲍勃撞墙了。鲍勃将留在同一个地方。 solved-鲍勃找到了出口!您的程序现在也应该退出而不打印其他任何东西。 ok -鲍勃能够朝着给定的方向移动。 如果迷宫没有出口,那么您的程序应该输出,no exit以让Bob知道他应该放弃。然后,您的程序应退出而不打印其他任何内容。 由于Bob急于离开,因此您的程序不应做任何无关紧要的动作。换句话说,您的程序不允许从相同的正方形向相同的方向移动两次。 这是代码高尔夫球,所以最短的程序胜出! 例子 在以下示例中,S是起始正方形,X是出口,#是墙,并且空格是有效正方形。由于没有一个正确的答案,因此这些只是解决方案的示例。还要注意,迷宫的图形就在那儿供您查看,您的程序不会将其作为输入。 ######## #S # ###### # # # #X# right ok right ok right ok right ok right ok right wall down ok right wall down ok right wall down solved ##### # S …

13
分解游戏
输入值 单个整数。1 ≤ X ≤ 10151≤x≤10151 \leq x \leq 10^{15} 输出量 具有乘积的不同正整数的最大数量。Xxx 例子 输入:1099511627776。输出:9.一种可能的最佳因子列表是:(1、2、4、8、16、32、64、128、4096)。 输入:127381。输出4。一种可能的最佳因子列表是:(1、17、59、127)。 与这个老问题有关。
13 code-golf  math 

4
石头,纸,剪刀,蜥蜴,斯波克锦标赛
在5月4日之后挑战星际迷航参考可能会让人皱眉,但这是可行的。 您,卢克(Luke),阿纳金(Anakin),帕尔帕廷(Palpatine),尤达(Hoda Solo)和汉·索罗(Han Solo)参与了摇滚,造纸,剪刀,蜥蜴,史波克的疯狂比赛。 这里的要点是只允许您使用固定顺序的移动。如果您的订单为“ R”,则您必须使用Rock,直到您输给所有人或输给每个人。如果您的订单是RRV,那么您必须使用2个Rocks和一个Spock,并不断重复直到您赢了或输了。 卢克(Luke),阿纳金(Anakin),帕尔帕廷(Palpatine),尤达(Yoda)和汉·索罗(Han Solo)分别提交了他们的订单,而作为专家级的黑客,您将掌握他们的每份订单! 有了这些知识,您就可以设计锦标赛的订购。因为每个人都想赢,所以您想创建一个订单,以便击败每个人来赢得比赛。但这并非在所有情况下都可行。 如果有可能的中奖订单,请打印出来。如果您无法取胜,请打印-1(或0或False或“不可能”) 输入:5个订单清单 输出:单个订单或-1 样本输入1 R P S L V 样本输出1 -1 说明1 无论您采取什么第一步,都将至少有一个人击败您,因此您不可能获胜。 样本输入2 RPS RPP R SRR L 样本输出2 RPSP 说明2 在第一步中打出Rock之后,您最终击败了“ L”和“ SRR”,并与其余的并列。这是因为蜥蜴和剪刀输给了Rock。当您接下来玩Paper时,您将击败“ R”并与其余的2并列。这是因为Rock输给了Paper。当您接下来玩剪刀时,当剪刀击败Paper时,您将赢得“ RPP”的胜利。 最后,您将在Paper击败Rock时用Paper击败“ RPS”。 以下是符号列表(您可以使用任意5个文字,但请在您的答案中指定): R : Rock P : Paper S : Scissor L : …
13 code-golf 

9
换词器可达性
换词器是一款您试图通过单字符编辑将一个单词变成另一个单词的游戏,每个步骤都是自己的单词。对于这个挑战,编辑可能是替换,插入或删除。例如,WINNER→LOSER可以使用以下路线来完成(可能还有其他路线): WINNER DINNER DINER DINE LINE LONE LOSE LOSER 换一种说法,您必须每次只能在Levenshtein距离为1的情况下通过另一个单词到达另一个单词。 编码 您将得到一个单词列表和两个单词,如果存在一条路由,则必须输出从一个单词到另一个单词的有效路由;如果不存在任何路由,则必须输出一个不同的常数值或一致的行为。 您可以假设输入的单词都在单词列表中 单词列表可以通过任何方便的平面格式输入。 列表,集合,尝试,空格分隔的字符串和行分隔的文件都是有效的(例如),但Levenshtein邻接关系的预先计算的图形无效。 输出路径应该包括两个输入词,但是开始和结束都没有关系。 如果未找到路由,则可以输出特定的常量,错误的值,空列表,引发异常,使用非零代码退出或在限定时间内发生的任何其他行为。 路线不一定是最佳路线,也没有要求应该采用哪条路线 计算复杂性无关紧要,但是必须证明您的程序在有限的时间内终止。(即使它超越了宇宙的热死) 您可以假设所有单词在相同情况下完全由字母组成 示例测试用例 猫→狗; [CAT,DOG,COG,COT,FROG,GROG,BOG] 猫,狗,狗,狗 浴室→淋浴; [沐浴,淋浴,卫生,帽子,BAT,SAT,锯,母猪,显示,如何] 找不到路线 BREAK→FIX;[BREAK,FIX,BEAK,BREAD,READ,BEAD,RED,BED,BAD,BID,FAD,FAX] BREAK,BREAD,BEAD,BAD,FAD,FAX,FIX 建造→毁灭; [建造,毁灭,建造,公会,公会,吉尔,吉尔,比尔,莳萝,填充,破坏,结构,构造] 找不到路线 卡→板; [卡,板,板] 卡,板,板 恶魔→天使; [天使魔鬼] 找不到路线 最后→过去;[最后,过去,爆炸,投射,黑色,幽灵,后期,夸张] 最后,过去 插入→删除; 这个单词表 插入,倒置,侵入,弯曲,弯曲,弯曲,弯曲,变暗,达林,成骨,成骨,成丝,成串,丝氨酸,成年神经,有色,硅酸盐,硅酸盐,陶土,降级,删除

2
Pólya缸翻转
问题陈述 Pólya再次玩着他的骨灰盒,他希望您能帮助他计算一些概率。 在此骨灰盒实验中,Pólya的骨灰盒最初包含1个红色和1个蓝色珠子。 对于每次迭代,他进入并取回珠子,然后检查颜色并将珠子放回back。 然后,他掷出一枚普通硬币,如果硬币落在硬币头上,他会在缸中插入相当数量的6面相同颜色的彩色骰子骰子,如果硬币落在尾巴上,他将从缸中取出一半的相同颜色的硬币(使用整数除法-因此,如果所选颜色的珠子数量为奇数,他将删除(c-1)/2c是该颜色的珠子数量) 给定整数n≥0且十进制r&gt; 0,则将n次迭代后珠子颜色之间的比率在最短的字节数中大于或等于r的概率赋予2个小数位。 一组示例迭代: 令(x,y)定义骨灰盒,使其包含x个红色小珠和y个蓝色小珠。 Iteration Urn Ratio 0 (1,1) 1 1 (5,1) 5 //Red bead retrieved, coin flip heads, die roll 4 2 (5,1) 5 //Blue bead retrieved, coin flip tails 3 (3,1) 3 //Red bead retrieved, coin flip tails 4 (3,4) 1.333... //Blue bead …

3
计算长度为n的莫比乌斯梯子上的受限森林数量
OEIS序列A020872对Möbius梯 M n上的限制林进行计数。 挑战 面临的挑战是编写一个程序,该程序将整数作为输入n &gt; 1并返回A020872(n)Möbius梯子M n上的受限林数。这是代码高尔夫球,因此最短的代码获胜。(别有用心的是也许将此序列的长度延长一点。) 定义 甲受限森林是图的一个分区,使得每个部分可以是一个(无向)路径或分离的顶点。 所述莫比乌斯梯子中号Ñ是可以想到的2n边形与所有相对顶点之间画出的对角线的曲线图。 例 这是M 2(画有对角线的正方形)上的34个受限森林。请注意,第一个图被划分为四个孤立的顶点,第二个图被划分为一个路径和两个孤立的顶点,依此类推。

10
新订单6:复活节彩蛋
简介(可以忽略) 将所有正整数按其常规顺序(1、2、3,...)放置有点无聊,不是吗?因此,这是围绕所有正整数的排列(重新排列)的一系列挑战。这是本系列的第六个挑战(链接到第一,第二,第三,第四和第五个挑战)。 这个挑战有一个温和的复活节主题(因为是复活节)。我从这种装饰精美(并且我个人认为比较丑陋)的鹅卵中汲取了灵感。 它使我想起了Ulam螺旋形,其中所有正整数都放置在逆时针螺旋形中。这种螺旋具有一些与质数有关的有趣特征,但与这一挑战无关。 如果我们采用Ulam螺旋中的数字并按从1开始的顺时针旋转螺旋追踪所有整数,那么就可以应对此挑战对正整数的置换。这样,我们得到: 1, 6, 5, 4, 3, 2, 9, 8, 7, 20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 25, 24, 23, etc. 如果您要绘制两个螺旋,则将得到某种无限的(例如蛋壳)螺旋网格(请注意此处的“ 新订单”参考)。 该序列存在于OEIS中,编号为A090861。由于这是一个“纯序列”质询,因此任务是针对给定的输出作为输入,其中是A090861。一个(n )a(n)a(n)ñnn一个(n )a(n)a(n) 任务 给定一个整数输入,以整数格式输出,其中是A090861。ñnn一个(n )a(n)a(n)一个(n )a(n)a(n) 注意:此处假定基于1的索引;您可以使用基于0的索引,因此,等等。如果您选择使用它,请在答案中提及。a (0 )= 1 ; a (1 )= 6a(0)=1;a(1)=6a(0) = 1; a(1) …

8
这是重复抽奖吗?
问题: 在国际象棋中,有一个关于重复抽奖的众所周知的规则。如果同一位置重复3次(或更多次),则打算进行此举动的玩家将引起平局。 有时候,如果最后几步只是球员的来回移动,这对于仲裁员来说是一件容易的事。有时,当零件在重复的位置之间显着移动时,它会变得不那么琐碎。 挑战中的问题是,给定坐标坐标的移动列表,如果要求的位置是通过重复绘制(已被看到3次或多次),则输出真值;如果要求的位置不是通过重复绘制,则输出假值。如下所述,或您选择的任何符号(但您必须转换测试用例)。 什么是职位? 在现实世界中,位置会受到诸如玩家是否可以装城堡或是否有传球之类的因素的影响;你应该不是在你的解决问题的办法考虑这些。在这个问题中,仅通过板上的部件的配置来确定位置。因此,出于此问题的目的,如果两个板上的每个正方形都被相同类型的相同颜色的零件占据,则两个位置被视为相同。这不一定是确切的棋子,例如,怀特的骑士可以交换正方形,并且如果所有其他棋子都符合条件,则该棋子仍将位于同一位置。 有效符号是什么样的? 尽管我将继续解释坐标符号,但是您可以自由选择所选择的符号系统进行输入。规定: 符号中的每一项都描述以下任何一项或全部:涉及的一件或多件;是否已交付检查,将死,再次检查,将死或僵持;是否发生了被动捕获;初始位置;最后的位置。 您的符号中可能没有重复的信息。 因此,只要满足这些条件,只要您在回答中指定,我就会很乐意接受您的符号系统。例如,可以是0索引行,列元组或任何对您的程序有意义的内容。 坐标符号 坐标符号是一种纯粹将移动描述为坐标系的符号。 首先将移动描述为来自该集合的初始坐标{A1-H8},然后再次描述为来自同一集合的目标坐标。因此,国王的甘比特看起来像(作为字符串的集合) {"E2-E4","E7-E5","F2-F4"} 我认为这是解决此问题的最佳方法,因为它不会散布无关紧要的信息,例如是否进行过检查或工件移动的类型。如前所述,可以选择一种表示法,因此您可以使用另一种表示法,例如代数表示法,也可以改写该表示法(例如,删除破折号或作为元组列表) 规则: 你应该不考虑位置或移动是否有效,只有它是否会导致重复 您可以假设将不会进行小规模促销和典当促销。 您应该将字符串列表作为输入,并输出与最后一次移动是否发生了第三次(或更多次)重复相对应的真实或错误值 游戏始终在国际象棋的标准起始位置开始。初始位置可以计入重复。 如果最后一步没有重复该位置,则不会发生重复绘制 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例 您应该为以下内容返回真实值: {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8"} {"B1-C3","B8-C6","D2-D4","D7-D5","D1-D3","D8-D6","C3-B1","C6-B8","B1-C3","B8-C6","D3-D1","D6-D8","D1-D3","D8-D6"} {"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-E6","E2-F3","E6-D4","F3-D1","D4-C6","D1-E2","C6-D4","E1-D1","D4-C6","D1-E1","C6-D4"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","B1-C3"} 和虚假的值: {} {"E2-E4","E7-E5","F2-F4"} {"B1-C3","B8-C6","C3-B1","C6-B8","B1-C3","B8-C6","C3-B1","C6-B8","F2-F4","F7-F5"} {"E2-E4","E7-E5","G1-F3","B8-C6","F1-C4","G8-F6","F3-G5","D7-D5","E4-D5","F6-D5","G5-F7"} {"D2-D4","B8-C6","E2-E4","C6-D4","D1-E2","D4-C6","E2-D1","C6-D4","D1-E2","D4-C6","E2-D1"} {"B1-C3","B8-C6","C3-B5","C6-B4","B5-D4","B4-D5","D4-C6","D5-C3","C6-B8","C3-B1","B8-C6","B1-C3","C6-B8","C3-B1"} {"E2-E4","E7-E5","D1-E2","E8-E7","E1-D1","D8-E8","E2-E1","E7-D8","E1-E2","E8-E7","E2-E1","E7-E8"}

6
矩形内的独特砖瓦
我在浏览#1,看到这个问题有关平铺显示M×N的矩形,我认为这将是伟大的高尔夫球场。这是任务。 给定尺寸M和N,编写一个程序,输出在给定这些约束的情况下可以平铺MxN矩形(N是行数,而不是列数。这并不重要)有多少种独特方式。 所有图块均为2x1或3x1 所有图块都留在其行内(即它们都是水平的) 每两个相邻的行之间,除了两端之外,磁贴不应对齐 M和N保证至少为1 例如,有效的8x3矩阵切片将是 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|_____|___| |___|_____|_____| 但是以下内容将无效,因为行对齐 2 3 3 | | | v v v _______________ |___|_____|_____| |_____|___|_____| |_____|_____|___| 测试用例: 8x3:4 3x1:1 1x1:0 9x4:10 编码高尔夫,最短的答案将获胜。

5
抵制主教的密码
不要与密码主教善良相混淆! 给定一个字符串,请回答(真实/虚假或两个一致的值),如果它构成了对主教不利的密码。 密码是针对主教强,如果它是由交替字母(在串a-h)和数字(中1-8),使得每对字符可以被解释为在棋盘的正方形,如果你把一个白色的棋子上每平方命名使用密码,那么白色主教就无法以任何连续的顺序从第一1行中的任何正方形移动到最后一行中的任何正方形8。 例子 对主教的密码很强 a1b1c1d1e1f1g1h1 a8b8c8d8e8f8g8h8 a1b2c3d4d5f5f4g3g4h2b5 h4g4f4e4c4b4a4c3e3 a1b1c1d1e1f1g1a8b8c8d8e8f8g8 b4b5d4d5f4f5g3h5 例如,a1b1c1d1e1f1g1a8b8c8d8e8f8g8对应于位置,b4b5d4d5f4f5g3h5对应于位置 针对主教的密码薄弱 a4c4e4g4g5d6f6e3d2b2 (格式正确但不强壮-感谢Jo King提供的示例!) b1c1d1e1f1g1h1a8b8c8d8e8f8g8 (格式正确但不强壮) h4g4f4e4c4b4a4c3 (格式正确但不强壮) d4 (格式正确但不强壮) b4b5d4d5f4f5g2h5 (格式正确但不强壮) correct horse battery staple (格式错误) 1a1b1c1d1e1f1g8a8b8c8d8e8f8g (格式错误) a (格式错误) aa (格式错误)

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.