编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

11
广义五十八序列
改编自这个五十八谜。 背景 检查以下无限序列: 3 3 3 2 3 3 3 2 3 3 3 2 3 3 2 3 3 3 2 ... 假设序列是1索引的。i序列中的th号确定3在ith 之前2和之后的2s 之前有多少个s。因此,由于序列以a开头,3因此序列必须开始,3 3 3 2并且由于序列的开头有3个3s,因此子序列3 3 3 2必须重复自身3次。之后,您会到达,3 3 2因为序列中的第四个数字是2。 FiveThirtyEight谜语要求限制三分之二的比率(在这里我不会破坏),但是您也可以询问index之后的累积比率i。例如在比i=4就是3/1 = 3,在i=15它的11/4 = 2.75。 让我们得到一般 给定数字n,k我们可以创建一个类似的序列,n就像描述的原始序列一样,索引处的数字i确定n在i第k一个之前和之后的第一个之后出现多少个ks。 例子: n=2, k=5 给出顺序 2 2 5 2 2 …

10
HSL到RGB值
RGB(红色绿色蓝色)颜色模型的主要目的是用于感测,表示和显示电子系统(例如电视和计算机)中的图像 HSL(色相饱和度亮度)是一种替代颜色模型,由计算机图形学研究人员在1970年代设计,可以更紧密地与人类视觉感知色彩属性的方式保持一致。 这是RGB和HSL的Wiki文章。图形程序通常在HSL中进行计算,然后转换为大多数屏幕的首选格式:RGB。 任务是编写一个将HSL作为输入并输出RGB的函数/程序。 您可以选择I / O的首选表示形式,只要它们之间是一致的即可。 例如,它们可以是具有3个元素的数组/元组,也可以是具有3个名为h,s和的属性的对象l,但是我将接受其他巧妙的变化,例如将hsl作为整数接收(丢失精度)并输出rgb整数。 可以认为输入的范围和格式是安全的,您都可以决定两者。我强烈建议该范围,0-1 0-1 0-1或者0-360 0-100 0-100对于hsl,0-1 0-1 0-1或者0-255 0-255 0-255对于rgb。 每个答案都必须同时指定以上两者,并且如果您对它们特别满意,请在答案中放入各种变化形式,即使它们的字符数少于其他变体形式也是如此。将最小的放在上面。 伪测试用例0-360 0-100 0-100→0-255 0-255 0-255 h s l → r g b 0 0 0 → 0 0 0 90 56 17 → 43 68 19 202 19 39 → 81 104 …

30
输出语言名称乘以字符数[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 2年前关闭。 挑战: 您的任务是使用任何一种语言来输出该语言的名称乘以其名称中字符的数量。 使用该语言的通用名称或缩写。 如果一种语言有多个版本,则无需包含版本号。 大写很重要。 例子: PHP -> PHPPHPPHP Java -> JavaJavaJavaJava C++ -> C++C++C++ Python 3 -> PythonPythonPythonPythonPythonPython JavaScript -> JavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScriptJavaScript

10
枚举带约束的所有可能的整数网格
问题 考虑非负整数的3×3正方形网格。对于每一行i,整数的总和设置为r_i。同样,对于每一列j,该列中的整数总和设置为c_j。 任务是编写代码,以在给定行和列总和约束的情况下枚举所有可能的不同整数分配给网格。您的代码应该一次输出一个分配。 输入项 您的代码应使用3个非负整数指定行约束,并使用3个非负整数指定列约束。您可以假设它们是有效的,即,总和或行约束等于列约束之和。您的代码可以通过任何方便的方式执行此操作。 输出量 您的代码应以您选择的任何人类可读格式输出其计算的不同2D网格。当然,越漂亮越好。输出中不得包含重复的网格。 例 如果所有行和列约束都完全相同1,则只有6不同的可能性。对于第一行,您可以1在前三列中的任何一列中输入a,对于第二行,现在有2替代方法,最后一行现在完全由前两行确定。网格中的其他所有内容都应设置为0。 说输入是2 1 0针对行还是1 1 1针对列。使用APL的可爱输出格式,可能的整数网格为: ┌─────┬─────┬─────┐ │0 1 1│1 0 1│1 1 0│ │1 0 0│0 1 0│0 0 1│ │0 0 0│0 0 0│0 0 0│ └─────┴─────┴─────┘ 现在说输入是1 2 3行和3 2 1列的。可能的整数网格为: ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │0 0 1│0 0 1│0 0 1│0 …

9
纸张和信封尺寸
任务 给定字母(A,B,C)和数字(0-10),以格式输出以毫米为单位的匹配标准纸张尺寸(A和B系列)或匹配标准信封尺寸(C系列)的尺寸aaaa x bbbb其中aaaa和bbbb是根据ISO216(A和B系列)或ISO296(C系列)以毫米为单位的宽度和高度测量值 为了使事情变得更容易,我将引用维基百科的纸张尺寸表 ISO paper sizes in portrait view Format A series B series C series Size mm × mm mm × mm mm × mm 0 841 × 1189 1000 × 1414 917 × 1297 1 594 × 841 707 × 1000 648 × 917 2 420 …
17 code-golf 

3
画直到你掉落
在《龙与地下城》第5版(以及大多数其他版本)中,存在一个称为“ 许多东西的甲板”的魔术物品。这是一个令人难以置信的强大项目,因为所有卡牌都有很强的正面或负面影响。要使用套牌,一个角色先声明一个数字,然后抽取最多该数量的纸牌,并按顺序应用效果。如果角色没有绘制他们声明的所有卡牌,并且距离绘制最后一张卡牌至少有1个小时,则将自动为它们绘制其余卡牌并应用效果。抽出每张卡后,将其返回卡座,然后将卡座洗牌。 以下是绘制每张卡1的效果的列表: 平衡:您的思维遭受痛苦的改变,导致您的对齐方式发生变化。合法变成混乱,善变成邪恶,反之亦然。如果您确实是中立或不结盟,则此卡对您没有影响。 彗星:如果您单手击败遇到的下一个敌对怪物或一组怪物,您的经验值就足以获得一个等级。否则,该卡无效。 Donjon:您消失并陷入超维领域的悬浮动画状态。失踪时,您所穿着和携带的所有物品都会留在您所占据的空间中。您将一直被囚禁,直到被发现并从球体中移出为止。您无法通过任何占卜术来找到自己的位置,但是许愿咒语可以揭示您监狱的位置。您不再抽奖牌。 Euryale。卡的美杜莎般的容貌会诅咒您。以这种方式被诅咒时,豁免检定得-2减罚。只有神或命运卡的魔咒才能结束这个诅咒。 命运:现实的结构重新解开并旋转,使您可以避免或擦除一个事件,好像从未发生过一样。您可以在抽出卡片后或死亡前的任何其他时间使用卡片的魔力。 烈焰:强大的魔鬼成为你的敌人。魔鬼寻找你的废墟,困扰着你的生活,在试图杀死你之前先品尝一下痛苦。这种仇恨一直持续到你或魔鬼死亡为止。 愚人:您损失10,000 XP,丢弃此卡,然后再次从牌组中抽奖,并将两次抽奖都算作您声明的抽奖之一。如果失去那么多的XP会导致您失去一个等级,那么您损失的数量将使您只有足够的XP来维持您的等级。 宝石:二十五个珠宝,每个价值2,000 gp,五十个珠宝,每个价值1,000 gp,出现在您的脚下。 白痴:永久降低你的智力1d4 + 1(最低分数为1)。您可以在声明的抽奖之外再抽一张卡。 小丑(Jester):您获得10,000 XP,或者您可以在宣告的抽奖之外再抽两张牌。拔出后将其丢弃。 钥匙:熟练的稀有或稀有魔法武器会出现在您的手中。GM选择武器。 骑士:您将获得一名4级战斗机的服务,该战斗机出现在您选择的30英尺范围内的空间中。战斗机与您属于同一种族,忠实地为您服务直至死亡,并相信命运将他或她吸引了。您可以控制此角色。 月球:您被授予施放愿望咒语1d3次的能力。 盗贼:GM选择的非玩家角色对您产生敌意。在NPC或其他人透露身份之前,您不知道新敌人的身份。绝望的咒语或神圣的干预,无不可以结束NPC对您的敌意。 废墟:您拥有或拥有的所有形式的财富(魔术物品除外)都将丢失给您。便携式财产消失了。您所拥有的企业,建筑物和土地的损失方式至少会改变现实。任何证明您应拥有此卡遗失物品的文件也将消失。 骷髅。您召唤了一个死亡的化身-穿着破烂的黑色长袍的幽灵般人形骷髅,身上戴着光谱镰刀。它会出现在您选择的10英尺范围内的通用汽车选择的空间中并向您发起攻击,并警告所有其他人您必须独自赢得这场战斗。化身一直战斗直到死亡或它的生命值降低到0,然后消失。如果有人试图帮助您,则助手会召唤自己的死亡化身。被死亡的化身杀死的生物无法恢复生命。 星星:将一项能力得分提高2。得分可以超过20,但不能超过24。 太阳:您获得50,000 XP,一个奇妙的物品(由GM随机决定)出现在您的手中。 利爪:您穿戴或携带的每件魔术物品都会分解。您拥有的文物不会被破坏,但会消失。 王座:您会说服技能熟练,并且使用该技能进行的支票会为您的熟练度奖金加倍。此外,您还获得了世界上某个小地方的合法所有权。但是,当前要塞已由怪物掌握,您必须先清除该怪物,然后才能将其视为自己的要塞。 维齐尔(Vizier):您可以在选择这张卡的一年内的任何时候选择冥想中的一个问题,并在心理上得到该问题的真实答案。除了信息,答案还可以帮助您解决令人困惑的问题或其他难题。换句话说,知识带有如何应用知识的智慧。 虚空:这张黑牌表示灾难。您的灵魂是从您的身体中抽出来的,包含在通用汽车选择的地方的物体中。一个或多个强大的生物守护着这个地方。当您的灵魂以这种方式被困住时,您的身体就无法工作了。愿望咒语无法恢复您的灵魂,但该咒语揭示了持有该愿望的物体的位置。您不再抽奖牌。 (卡说明从D&D第5版SRD复制) 一些特别愚蠢的玩家会立即抽出大量纸牌,希望获得至少一个强大的恩赐来平衡有害的纸牌。如人们所料,这通常会导致角色死亡或无法继续抽牌。 挑战 模拟从22张卡片中的许多事物重复进行的抽奖,输出每张抽奖卡,仅在满足以下条件之一时停止: 角色死亡(通过绘制Skull或绘制Flames或Rogue之后绘制5张牌,而没有The Fates或Moon active 2的好处)。 该角色无法绘制更多的牌(通过Donjon,Talons,The Void 3的作用,或者该角色的智力得分通过白痴4降至3或更低)。 规则 角色的对齐方式,等级,XP和除甲板以外的所有物品均无关紧要。 角色的智力得分从10开始。 角色的智力或对愿望的储存没有最大限制。 命运的使用不会叠加。 该愿望法术有1个多3造成的字符永远无法使用的机会,希望再次法术,除了定期的效果。如果发生这种情况,角色将无法再使用该咒语来抵消Flames,Rogue或Skull- 命运的力量是他们唯一的手段。 …
17 code-golf  random  game 

29
围绕枢轴反转字符串的两个部分
背景 我目前正在参加AP Comp Sci A:Java课程,并且想结识一些打高尔夫球的朋友。我在课程中遇到了挑战,我想看看社区可以在其中挑战多少字节。 挑战详情: 给定两个输入字符串,即主字符串和枢轴字符串,请执行以下操作: 如果枢轴字符串恰好是主字符串的子字符串一次,则主字符串中位于枢轴字符串之前的部分应与之后的部分交换,同时保留要交换的子字符串中的顺序。 例如: 如果转角字符串为空或枢轴字符串不是主字符串中发现,该方案不必有定义的行为。 如果枢轴字符串的实例不止一个,则拆分应在枢轴的第一个实例和仅第一个实例处进行。 示例:给定主字符串OneTwoThreeTwoOne和数据透视字符串Two,输出应为ThreeTwoOneTwoOne。 给定主字符串1Two2Two3Two4和枢轴Two,输出应为2Two3Two4Two1。 给定主字符串OneTwoThree和枢轴字符串“ Two”,输出应为ThreeTwoOne。给定主弦the rabbit is faster than the turtle和枢轴弦 is faster than (请注意尾随空格),输出应为the turtle is faster than the rabbit。 给定主字符串1-2-3-4-5-6和枢轴-,输出应为2-3-4-5-6-1。 后记: 这是我对代码高尔夫的第一个问题,因此,如果您有任何建议或建设性的批评,请随意发表。 另外,可以在下面找到我用于该项目的代码(使用Java编写,因为本课程着重于此)。如果您有任何提示,我很乐意看到它们。它目前的363字节,但我敢打赌,你们可以提出更好,更小的解决方案。 import java.util.Scanner;interface Main{static<T>void D(T f){System.out.println(f);}static void main(String[]A){Scanner s=new Scanner(System.in);D("Enter the first String:");String a=s.nextLine();D("Enter the pivot …
17 code-golf  string 

11
神奇的电子邮件转换!或者:帮助NSA从您的电子邮件地址中提取您的元数据
给定一个电子邮件地址,应用于该电子邮件地址的转换结果以及第二个电子邮件地址,将返回应用于第二个电子邮件地址的相同转换的输出。 电子邮件地址都将具有以下结构: 一串正长度的字符串,包含字母数字字符和最多一个.(局部部分),后跟一个@符号,然后是一串正长度的字符串,其中包含字母数字sumbols(域),后跟一个.符号,最后是一串正长度的字符串包含字母数字字符(TLD)。 有四个允许的转换: 身份(不变)。(a.b@c.d -> a.b@c.d) 仅返回本地部分(之前的所有内容) @未修改(a.b@c.d -> a.b))。 返回本地部分拆分 .如果存在),并用大写的每半个符号表示。(a.b@c.d -> A B)。 仅返回域(介于@和最终之间的所有内容.未修改)。(a.b@c.d -> c)。 如果可能进行多个转换,则可以给出任何可能性的输出。输出开头和结尾的空格无关紧要,但是中间的空格就无关紧要(即,如果拆分a.b为A B中间,则中间应该只有一个空格[并且输出的开头和结尾应该是空格),但是如果拆分a.,那么A在任何一侧都可以有任意数量的空格)。 范例(input | output): john.doe@gmail.com, John Doe, phillip.maini@gmail.com | Phillip Maini John.Doe@gmail.com, John Doe, Phillip.Maini@gmail.com | Phillip Maini foo.bar@hotmail.com, foo.bar, gee.whizz@outlook.com | gee.whizz foo.bar@hotmail.com, foo.bar, gEe.Whizz@outlook.com | gEe.Whizz rodney.dangerfield@comedy.net, comedy, …
17 code-golf  string 

30
将egaugnaL添加到多语言
这是一个答案链式问题,这意味着所有答案都受到之前答案的影响。 任务 该问题的第n个答案必须使用其答案中存在的所有语言。它们不必按顺序运行,但必须打印当前正在运行的语言的名称,取反。 附加规则 一种语言不能使用两次。 您的程序必须运行无误。不允许使用错误来记录语言名称,但是允许您使用错误来确定语言。 每个答案的长度不得超过前一个答案的30%或40个字节(以较大者为准)。如果百分比不是整数,则四舍五入下来。 您添加的语言必须是免费的实现语言。 允许使用任何语言的口译员。 如果您可以链接到可复制的结果,请这样做。 反向语言的名称不区分大小写,因此“ 3nohtyp”对Python 3.0有效 您可能不会连续输入2个答案。 如果您的语言不支持字符串,请按照以下模式将字母打印为数字:“ A” = 0,“ B” = 1,“ C” = 2 ... 如果语言不支持字符串并且名称中包含非字母字符,请打印-1而不是非字母字符。请显示该语言不支持字符串的验证。 胜利条件 如果此问题持续20天而没有答案,则倒数第二个答案获胜。 答案格式 4. CoffeeScript,20个字节 (program goes here) 这个程序打印nohtyp在Python 3,和tpircsavaj在JavaScript中。 (如果您想解释您的操作方式,请在此处进行操作)

9
整数平方根的序列
让我们定义一个整数平方根的序列。首先,a(1)=1。然后,a(n)是之前从未见过的最小正整数,因此 sqrt(a(n) + sqrt(a(n-1) + sqrt(... + sqrt(a(1))))) 是一个整数。一些例子: a(2)是3,因为它是最小的整数,因此 sqrt(a(2) + sqrt(a(1))) = sqrt(a(2) + 1)整数,并且之前的序列中未出现3。 a(3)是2,因为它是最小的整数,即sqrt(a(3) + sqrt(a(2) + sqrt(a(1)))) = sqrt(a(3) + 2)整数,并且之前的序列中未出现2。 a(4)是7,因为它sqrt(a(4) + 2)是整数。我们不可能有a(4)= 2,因为在我们的序列中已经出现了2个。 编写一个给定参数n的程序或函数,其返回数字序列a(1)至a(n)。 该序列以1,3,2,7,6,13,5,...开始。 该序列的来源来自此Math.SE问题。 序列中前1000个元素的图:

3
求幂乘以加法
可以将2个整数之间的乘法简化为一系列加法运算,如下所示 3 * 5 = 3 + 3 + 3 + 3 + 3 = 5 + 5 + 5 求幂(将a增大到b)也可以简化为一系列乘法: 5 ^ 3 = 5 * 5 * 5 因此,可以通过创建乘法表达式将乘幂减少为一系列加法,然后减少为一系列加法。例如,5 ^ 3(5立方)可以重写为 5 ^ 3 = 5 * 5 * 5 = (5 + 5 + 5 + 5 …

14
蒙我的密码
仍应避免将常用词用作密码。这种挑战是关于编码一个非常简单的程序,munges一个给定的密码(中号 odify û NTIL Ñ OT ģ uessed ë asily)。 输入项 一个单词,它是用字母写的字符串abcdefghijklmnopqrstuvwxyz。字母是小写还是大写都没有关系。 ging 将同一字母的任何重复序列更改为其自身,LLLL再加上该字母重复的次数(4L) 更改第一个a与@ 更改第一个b与8 更改第一个c与( 更改第一个d与6 更改第一个e与3 更改第一个f与# 更改第一个g与9 更改第一个h与# 更改第一个i与1 更改第二i与! 更改第一个k与< 更改第一个l与1 更改第二l与i 更改第一个o与0 更改第一个q与9 更改第一个s与5 更改第二s与$ 更改第一个t与+ 更改第一个v与> 更改第二v与< 更改第一个w与uu 更改第二w与2u 更改第一个x与% 更改第一个y与? 必须将规则1应用所需的次数,直到无法再应用它为止。之后,将应用其余规则。 输出绿字 例子 codegolf -> (0639o1# programming -> pr09r@2m1ng puzzles -> pu2z135 …
17 code-golf 

10
具有相似功效的数字
给定一个整数P> 1,找出最小的整数Q> p,使得的因式分解指数列表中q是同类的的p,无论顺序或素因子值。 例子 p = 20的素数分解为2 2 x 5 1。在素数分解中具有相同指数的大于p的最小整数为q = 28 = 2 2 x 7 1。 p = 2500的素数分解为2 2 x 5 4。在素数分解中具有相同指数的,大于p的最小整数为q = 2704 = 2 4 x 13 2。 规则 输入保证为大于1的整数。 这是代码高尔夫球,因此最短的答案以字节为单位。 测试用例 Input | Output ------+------- 2 | 3 20 | 28 103 | …

14
最小整数作为给定因子的乘积
最近有很多与质数/素数分解相关的挑战,所以我认为走另一条路可能很有趣。 鉴于: 一个正整数n,和 正整数的非空列表 f 编写一个完整的程序或函数以找到最小的整数i,使得i >= n和i是f。中元素的非负整数幂的乘积。 例子: 假设n = 11, f = [2, 3, 5]。 前几个产品是: 1 = 2^0 * 3^0 * 5^0 2 = 2^1 * 3^0 * 5^0 3 = 2^0 * 3^1 * 5^0 5 = 2^0 * 3^0 * 5^1 4 = 2^2 * …

11
环原子多项式
背景(跳至定义) 欧拉证明了关于复数的美丽定理:e ix = cos(x)+ i sin(x)。 这使得de Moivre定理易于证明: (e ix)n = e i(nx) (cos(x)+ i sin(x))n = cos(nx)+ i sin(nx) 我们可以使用二维欧几里得平面绘制复数,其中水平轴代表实部,垂直轴代表虚部。这样,(3,4)将对应于复数3 + 4i。 如果您熟悉极坐标,则极坐标中的(3,4)将为(5,arctan(4/3))。第一个数字r是点到原点的距离;第二个数字θ是从x轴正方向到该点逆时针测量的角度。结果,3 = rcosθ和4 = rsinθ。因此,我们可以写成3 + 4i为rcosθ + risinθ = r(cosθ+ isinθ)= reiθ。 让我们求解复数方程z n = 1,其中n是一个正整数。 我们令z = reiθ。然后,Z Ñ = R Ñ Ë inθ。z …

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.