编程拼图和代码高尔夫

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


30
找出不除N的最小数
这个挑战很简单,基本上就是标题中的所有内容:给您一个正整数N,并且应该返回最小的正整数,该整数不是N的因数。 一个例子:的约数N = 24是1, 2, 3, 4, 6, 8, 12, 24。该列表中没有的最小正整数是5,因此这是您的解决方案应找到的结果。 这是OEIS序列A007978。 规则 您可以编写程序或函数,并使用我们的任何标准方法来接收输入和提供输出。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此以字节为单位的最短有效答案为准。 测试用例 前100个术语是: 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 5, 2, 3, 2, 3, 2, 4, 2, 3, 2, 3, 2, 5, 2, 3, 2, 3, 2, 4, 2, 3, …

30
延伸字眼
输入是不由空格分隔的小写字母单词。最后的换行符是可选的。 必须以修改后的版本输出相同的单词:对于每个字符,第二次在原始单词中出现时将其翻倍,第三次出现中以此类推。 输入示例: bonobo 输出示例: bonoobbooo 适用标准I / O规则。以字节为单位的最短代码获胜。 @Neil提供的测试: tutu -> tuttuu queue -> queuuee bookkeeper -> boookkkeeepeeer repetitive -> repeetittiiveee uncopyrightables -> uncopyrightables abracadabra -> abraacaaadaaaabbrraaaaa mississippi -> misssiisssssssiiipppiiii

30
通过减去最大除数从n到1需要多少步?
这个问题的灵感来自数学。 问题 我们n是一个自然数≥ 2。取最大除数(n与n自己不同)除以n。重复直到得到1。 问题 达到1给定数字需要多少步骤n ≥ 2。 详细的例子 让n = 30。 最大除数: 1. 30 is 15 --> 30 - 15 = 15 2. 15 is 5 --> 15 - 5 = 10 3. 10 is 5 --> 10 - 5 = 5 4. 5 is 1 --> 5 - …

16
代码(迷你)高尔夫
给定一个迷你高尔夫球场的侧视图和挥杆的力量,确定球是否会使其进入洞中。 课程将采用以下格式: ____ ____ _ __/ \ / U \ __/ \ / \_ \_/ 球直接开始之前在左侧的第一块地上,直到它到达所述孔(一个大写如下过程的轮廓U下方的地面的当前电平)。如果到达孔,则输出真实值。挥杆的力量将是球的初始速度。每次迭代时,球都会移到右侧的下一个角色,然后根据现在的角色更改速度。如果速度0在孔之前达到或小于孔,则输出假值。 _ 降低速度 1 / 降低速度 5 \ 通过增加速度 4 可以选择用空格填充课程。摆幅的幂将始终为正整数。 您无需担心球的移动速度太快而无法进入洞,向后滚动或从山上跳跃/弹跳。 测试用例 Input: 27 ____ ____ _ __/ \ / U \ __/ \ / \_ \_/ Output: true ---------- Input: 26 ____ ____ …

16
目光转移我是
视而不见的ASCII家伙喜欢转移ASCII的字符Ii: >_> <_< >_< <_> 给定一串杂乱无章的家伙,这些家伙相互隔开或分开,将的Ii一侧左右移动,向左移墙,向右移天空: Ii 最短的变速杆赢得了大奖。 说什么? 编写一个程序或函数,该程序或函数接收这四个ASCII表情符号的任意列表的字符串,以空格或换行符分隔(带有可选的尾随换行符): >_> <_< >_< <_> 例如,输入可能是 >_> >_> <_> 要么 >_> >_> <_> (您支持的方法取决于您。) 每个表情符号都会对I和i字符执行不同的操作,总是以如下方式开始: Ii >_>转移I通过一个在右边,如果可能的话,并且然后将i通过一个权。 <_<I如果可能的话,向左移动一位,然后,如果可能的话,向左移动i一位。 >_<I如果可能,向右移动一,然后,如果可能,则向左移动i一。 <_>转移I到由一个,左如果可能的话,并且然后将i被一个到右侧。 I如果它在直线的左边缘,则不能向左移动(如其初始位置);如果i它直接在其右侧,则不能向右移动(如其初始位置)。 i如果I直接位于左侧,则不能向左移动(如最初一样),但始终可以向右移动。 请注意,使用这些规则,I将始终保留在的左侧i,并I尝试在i所有图释之前进行平移。 您的程序或函数需要Ii按照给定的顺序应用所有移位后,使用空格( )或句点(.)表示空白,然后打印或返回最后一行的字符串。输出中可选地允许尾随空格或句点以及一个尾随换行符。不要混用空格和句点。 例如,输入 >_> >_> <_> 有输出 I...i 因为这种变化像 start |Ii >_> |I.i >_> |.I.i <_> |I...i 以字节为单位的最短代码获胜。决胜局是最高投票的答案。 …

30
Spoonerise单词
给定两个词,通过切换其初始辅音簇来对其进行轻描淡写。最少的字节数获胜。 plaster man -> master plan blushing crow -> crushing blow litigating more -> mitigating lore strong wrangler -> wrong strangler def ghi -> ghef di few years -> yew fears aeiou切换第一个元音()之前出现的辅音。 输入:两个以不同辅音开头的小写字符串,每个字符串都包含一个元音aeiou。 输出:以正确的顺序排列两根尖头的琴弦。 对于输入和/或输出,两个字符串也可以在列表等中,或者作为带有分隔符的单个字符串。 显示代码段 var QUESTION_ID=69385,OVERRIDE_USER=20260;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/69385/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return …
50 code-golf  string 

12
亚历克斯有时候是对的
这个挑战是要唤起我们通常是错误的 mod A. Alex A.的精神。 假设您有一个名为Alex的朋友,他需要有关基本逻辑和数学(特别是数学等效性)的帮助。 他为您提供了以下形式的方程式列表,[variable] = [variable]其中a [variable]始终是单个大写字母A到Z(不是小写字母,数字,也没有其他内容)。列表中每行只有一个方程,只说了一行therefore。 上面的所有方程式therefore都是前提,假设事实成立。下面的所有等式therefore都是未经验证的命题,这是Alex试图从前提推论得出的事实,它们可能是正确的也可能不是正确的。 例如,在此等式列表中,单个结论命题A = C恰好是正确的: A = B B = C therefore A = C 告诉亚历克斯,如果他的所有命题在逻辑上都遵循给定前提,这是您的工作。也就是说,您需要在结论中告诉Alex他是对还是错。 编写一个程序/函数,该程序/函数接受所描述的一系列方程式的字符串并打印/返回 Alex is right 如果所有结论都从前提逻辑上得出,否则输出 Alex is wrong 如果在逻辑上没有从前提得出任何结论。 以字节为单位的最短代码获胜。 确保注意以下情况: 变量始终等于自己。例如 B = A therefore A = A X = X 结果Alex is right。 …
50 code-golf  math  logic 

3
别。甚至。眨
您的生活可能取决于此。不要眨眼 甚至不眨眼。眨眼,你就死定了。他们很快。比您想象的要快。不要转过头,不要移开视线,也不要眨眼!祝好运。 哭泣天使是一个外星人种族,在被另一个生物(甚至另一个天使)观察时无法移动。他们通过及时送回受害者来养活自己。您(医生)被困在一个房间里,您需要去TARDIS。 任务 编写一个程序,该程序将给出一个矩形房间的ASCII表示形式,并输出一条可确保您安全的路径。如果有任何天使可以在前进过程中的任何时候发起攻击,那么这条道路并不安全。如果一个天使可以看见您而又未被您或另一个天使看见,则可以发起攻击。 输入项 输入分为两个部分。首先,您要面对的方向(NSEW)。然后在随后的几行中,显示房间,显示开始/结束位置,以及所有天使的位置/朝向。 下面的示例显示有一个天使面向西,而您开始面向南。 S .......... ....D..... .......... .......... .......... .......... .......... .......... .........W .......... ...T...... . - 空的空间 D -医生(开始位置) T -TARDIS(最终位置) N,S,E,W -面向指定方向的天使(北,南,东,西) 视线 您可以看到与您面对的方向成45度角的任何空间。如果沿直接的水平,垂直或45度对角线存在另一个实体,则视线将被遮挡。任何其他对角线都不会遮挡视图。天使的视线以相同的方式起作用。例如,在下面-,假设您朝南,则表示您的视野。 ........ ...D.... ..---... .-----.. -------. ---N---- ---.--N- ---.---- 输出量 输出是一个字符串,表示您要退出的路径。如果有多个安全路径,请选择任何一个。如果没有安全的路径,则输出0。如果地图格式不正确,请采取任何措施,包括崩溃。如果房间不是矩形,没有出口等,请考虑它是否畸形。如果没有天使,它就不会畸形,这很容易。 对于每一步,您可以执行以下两项操作之一:沿NSEW方向移动,或转向NSEW方向(不更改位置)。要移动,只需输出该方向的字母即可。要转向一个方向,请在输出F后加上相应的字母。例如,以下输出: SSFESSSSSSSW 是输入部分中给出的样本的安全路径。您向南移动两次,面向东方以保持天使的视线,然后再向南移动七次,向西移动一次进入TARDIS。 测试用例 1)您可以绕着朝东的天使到达TARDIS。除非您直接在它们之间跨步,否则它们会彼此锁定在适当的位置,因此无论您面对哪种方式都无所谓。 W ...D.... ........ ........ …
50 code-golf 

30
是的,长91行
yes,来自coreutils,长91行。他们中许多人的意见,但仍然WAY太长。 从2019年9月开始编辑:源文件在过去五年中增长了,现在长126行。 编写一个模仿的程序yes: 输出到stdout“ y \ n”的无限流 必须有一个选项来阻止它除了具有杀死进程SIGKILL:但SIGINT和SIGPIPE都很好 您不得使用“ y”或“ \ n”或其ASCII值(121、0x79、0171、10、0xA或012) 最短答案胜出。 奖金: 如果可以接收到一个短语stdin并打印出来而不是“ y”(但仍包括换行符),则从代码长度中减去10 。

28
你是最弱的一环,再见
这个特大号的最山上的挑战是基于关闭的游戏节目,最薄弱的环节。对于那些不熟悉该节目的人,此挑战的症结在于您要投票否决谁: 如果其他玩家比您聪明,那么您获得底池的机会就更少。 如果其他玩家比您还笨,那么您所拥有的底池就更少了。 在每个回合开始时,底池从$ 0开始。组成一个由9个玩家组成的组,每个玩家都被赋予1到9之间的唯一智慧。 在每个回合开始时,每个Pot += Smartness仍在回合中的玩家。然后,玩家对希望删除的玩家进行投票。得票最多的玩家将被删除。如果出现平局,则保留更聪明的玩家。 当本轮只剩下2位玩家时,他们将在智慧之战中对峙。玩家获胜的机会是Smartness/(Smartness+OpponentSmartness)。然后获胜的玩家将收到整个彩池。 在游戏结束时获得最多钱的玩家将获胜。 输入输出 每回合,您将收到当前的对手列表。您可以通过Player类中的功能访问自己的聪明才智和所有玩家的整个投票历史记录。 作为输出,您必须返回一个整数,代表您希望投票的球员(代表他们的聪明才智)。投票为自己被允许(但不推荐)。 9回合将重复进行,直到所有玩家至少玩了1000 10000回合,并且所有玩家都参加了相同的回合数。 您可以在这里找到控制器:https : //github.com/nathanmerrill/WeakestLink 要创建播放器,您需要扩展Player类,并将您的播放器添加到PlayerFactory类。您的课程必须遵循以下规则: 严禁与任何其他播放器(包括您的其他同类型播放器)进行通信或干扰。 不允许使用反射和静态变量(常量除外)。 如果要使用随机性,我getRandom()在Player类中提供了一个函数。使用它,因此模拟可以是确定性的。 我在Player类中提供了许多功能,以便于访问数据。您可以在Github上在线找到它们。您的玩家将在每个新回合实例化。允许“愚蠢/自杀”玩家(但不允许使用具有相同策略的玩家)。 分数 377195 WeakestLink.Players.PrudentSniper 362413 WeakestLink.Players.Sniper 353082 WeakestLink.Players.VengefulSniper 347574 WeakestLink.Players.AntiExtremist 298006 WeakestLink.Players.BobPlayer 273867 WeakestLink.Players.MedianPlayer 247881 WeakestLink.Players.TheCult 240425 WeakestLink.Players.Leech 235480 WeakestLink.Players.SniperAide 223128 WeakestLink.Players.Guard 220760 WeakestLink.Players.Anarchist 216839 WeakestLink.Players.RevengePlayer 215099 WeakestLink.Players.IndependentVoter …

13
Magrathea 2.0-建筑山脉
随着全球经济的严重崩溃,对定制行星的需求也急剧下降。Magratheans还必须照顾来自更多客户的稳定收入。因此,他们为预算有限但无法负担完整星球的人们发明了自己的山脉链(或短途破坏山)。 山上根据客户的计划(数字和点又名字符串)是构建和使用ASCII艺术交付(包括,/,\,^和v)。 任务 编写一个完整的程序,该程序将来自STDIN的输入(单个字符串)或作为参数输入到STDOUT。这个难题是一个代码高尔夫,所以请尝试打高尔夫球。 输入项 一串点和数字为山脉提供基础。每个字符串的长度与支撑山脉所需的时间完全相同,并且每个峰用一个数字而不是一个点来表示,表明峰的高度。 输出量 山脉版本的ascii版本。 输入中的每个数字^都恰好在数字指示的高度处代表一个峰()(即9是最高高度)。 输出中不得有其他峰值(即在输入中有点的地方)。 山为三角形,即使用/和\字符创建坡度。 使用字符塑造两座山重叠的通行证v。 没有多余的换行符或空行。 带有尾随空格的填充线是可选的。 您可以假设提供的输入是有效的,即始终存在根据规则的解决方案(例如,输入13..不会导致有效的配置,因此可能会被忽略)。此外,在每侧上都有正好一样多的点,这样就不能割掉山脉了。 例子 第一行显示输入,所有其他行构成所需的输出。(实际上,在我的控制台中,山脉看上去比这里要好得多。) 1 ^ 11 ^^ 1.2. ^ ^/ \ .2.3.. ^ ^/ \ / \ .2..3.. ^ ^ / \ / v \ ...4...3...3.. ^ / \ ^ ^ / \/ \ / \ …

10
构建一个通过Diehard测试的随机数生成器
尽管这里有许多涉及随机性的代码高尔夫问题,但我还没有看到有人真正要求构建算法伪随机数生成器。有一个要求您生成一个比特流,但是在那个端口上提供的随机性测试不是很严格,也不是代码高尔夫。 您编写的程序将具有一个可调用的函数,该函数将返回一个从0到4294967295的随机整数。此函数不得调用未作为程序一部分编写的任何库或其他函数,尤其是对/ dev / random的调用或语言的内置rand()库。更具体地说,您限于所用语言的基本运算符,例如算术,数组访问和条件流控制语句。 您的程序的分数计算如下: Score = C / R 其中C是代码的长度(以字符为单位),R是生成器通过的Diehard测试次数(如果您的随机数生成器未通过至少一项Diehard测试,则其得分为无穷大且不合格)。如果生成器生成的文件提供的P值范围似乎沿着间隔[0,1)均匀分布,则您的生成器通过了Diehard测试。 要计算R,请使用随机数生成器及其默认种子来生成16 MB的二进制数据文件。该函数的每次调用都返回四个字节。如果您的函数太慢而无法返回字节,则这将导致折衷考虑在测试难度上获得较低的分数。然后,通过Diehard测试运行它并检查提供的P值。(不要尝试自己实现这些;请使用此处提供的内容) 当然,最低分获胜。

30
模糊的FizzBu​​zz高尔夫[关闭]
创建最短的模糊FizzBu​​zz实现。 要被视为混淆,它应至少满足以下条件之一: 不包含任何单词“ Fizz”,“ Buzz”或“ FizzBu​​zz” 不包含数字3、5或15。 以一种误导的方式使用上述任何一种。 切记:目标是简短且难以遵循。 激发这个问题的代码示例如下: public class Default { enum FizzBuzz { Buzz = 1, Fizz, FizzBuzz } public static void Main(string[] args) { byte[] foo = Convert.FromBase64String("IAmGMEiCIQySYAiDJBjCIAmGMEiCIQySYA=="); MemoryStream ms = new MemoryStream(foo); byte[] myByte = new byte[1]; do { FizzBuzz fb; ms.Read(myByte, 0, 1); …

21
缩写为美国州!
给定左侧的50个美国州名之一作为输入,输出其两个字母的邮政编码,如右侧所示: Alabama AL Alaska AK Arizona AZ Arkansas AR California CA Colorado CO Connecticut CT Delaware DE Florida FL Georgia GA Hawaii HI Idaho ID Illinois IL Indiana IN Iowa IA Kansas KS Kentucky KY Louisiana LA Maine ME Maryland MD Massachusetts MA Michigan MI Minnesota MN Mississippi MS Missouri …

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.