编程拼图和代码高尔夫

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

8
代码高尔夫宾果游戏!
给你一个 宾果游戏板和一个通话清单。您必须打印宾果!一旦您的董事会赢得比赛。 宾果板看起来像这样: 它们的指定方式如下: 14 29 38 52 74 4 18 33 46 62 7 16 * 60 71 9 27 44 51 67 12 23 35 47 73 董事会之后将立即发出呼叫,如下所示: B7 I29 G60 G51 O71 I23 I16 N38 您必须将呼叫呼出到标准输出,直到赢得您的呼叫之后(获取满满的行,列或5长对角线),然后打印 BINGO!。 对于上面的示例,打印: B7 I29 G60 G51 O71 I23 I16 BINGO! 规则 …
14 code-golf 

17
测试给定数字是否为Keith数
由于斐波那契数字和序列似乎是打高尔夫球的热门话题,所以我认为用基思数字打高尔夫球可能是一个有趣的挑战。 因此,我提出了一个挑战,即创建一个函数,该函数需要一个整数,并根据数字是否为Keith数字来返回true或false。 有关基思数字的更多信息 在娱乐数学中,Keith数或repfigit数(重复的斐波那契数位的缩写)是以下整数序列中的数字:14、19、28、47、61、75、197、742、1104、1537、2208, 2580,… Numberphile的视频解释了如何计算Keith数。但基本上,您使用数字的位数。将它们加在一起,然后取原始数字的最后几位,并将它们加到计算总和中,然后冲洗并重复。并举例说明。 14 1 + 4 = 5 4 + 5 = 9 5 + 9 = 14 输入值 一个整数。 输出量 如果数字是基思数字,则为True。如果不是,则为假。
14 code-golf  math  number 

1
Code Golf:宇宙飞船的命运是什么?[ASCII艺术版本]
背景 在一个遥远的星系(可能还有一个宇宙)中……有一艘太空船和一堆行星。船上的故障导致飞船的燃料用完了。它现在正以危险的缓慢速度在附近的行星簇附近移动,必须从中逃脱!机组人员的命运是什么? 挑战 您是USS StackExchange的首席程序员。因此,您希望编写一个模拟器来揭示您是否注定要坠落到行星上,逃离行星系统或永远停留在轨道上。 但是,您的飞船爆炸了,这意味着计算资源非常有限。您的程序必须尽可能小。同样,这意味着输入要运行的仿真的唯一可能方法是通过ASCII艺术。 模拟 在多元宇宙的这一象限中,为了适应ASCII艺术,对物理定律做了些微改动。这意味着宇宙被分为细胞。运动将以单元为单位进行描述,时间将以时间步长为单位。 船本身有动力。如果船在上一个时间步中在x轴上移动了+2个像元,在y轴上移动了-1个像元(简称为(2,-1)),并且没有重力场,则该船将按照在下一个时间步中保持相同的速度。 将有几颗行星,所有这些行星都在紧邻其的八个单元上施加引力场,这将影响船的速度并将船拉近行星。正好位于行星的“北”,会导致以(-1,0)的力将飞船的一个单元向“南”拉。只是行星的“东北”,将导致以(-1,-1)的力将飞船一个单元拉向“南”,将一个单元拉向“西”。 重力场为船舶离开重力时的动量增加了一个矢量。如果一艘船以前移动了(2,-1)个像元,而现在处于(-1,1)的重力场中,那么在下一个步骤中,它将移动(1,0)个像元。如果船靠近多个行星,则将添加多个矢量。 输入值 在STDIN上,您将收到行星系统的ASCII艺术作品表示,它将显示行星的坐标和船的当前速度。将有多个@符号形式的行星,而将有一个以av ^ <>符号形式的宇宙飞船。选择船的符号表示船的当前速度(在添加重力之前)。例如,<表示一个单元向西的速度,而^表示一个单元向北的速度。所有空白区域都由句点组成,这些句点将每行填充为相同的宽度。空行代表输入的结尾。这是输入的示例: ................. ...@.@........v.. ......@..@..@@... ..@.............. .......@..@...... ................. 输出量 输出将是STDOUT上的一个字,它将告诉船是逃避重力,坠落到行星上还是永远绕轨道运行。 逃避重力的定义是船舶从地图上移开。如果船逃脱,那么您的程序必须打印单词“ escape”。 崩溃着陆是指船舶在某个时间步中直接越过行星或在同一单元中结束时。请注意,仅计算船舶每个时间段的位置是不够的。速度为(5,5)的船舶将撞向位于(1,1)的行星,即使直接计算将意味着它永远也不会访问该单元。但是,速度为(5,6)的飞船不会撞到地球上。如果您的飞船坠毁着陆,那么您的程序必须打印“ crash”一词。 轨道运动可能是最难检测到的。每当飞船以相同的速度两次访问相同的单元时,就会发生轨道运动。如果飞船绕行,则应打印单词“ orbit”。 这是以上示例的输出: escape 说明 这是一张地图,显示上例中太空船在每个时间步中的移动位置: ^ ................. ...@.@........v.. ....^.@..@..@@... ..@..<.<<<.<.v... .......@..@...... ................. 它向南走,向西走,沿着走廊走,向北走,然后由于重力而狭窄地逃到了高速行星之间。 更多案件要检查 ... ^@. ... orbit ........... .>@.@...... .@......@.. ....@...... …

5
模拟任何一维元胞自动机
挑战 您将要编写一个完整的程序,该程序使用来自STDIN的七个数字,并将元胞自动机(CA)的二维历史记录打印到STDOUT。这是代码高尔夫。 输入格式 输入将是七个整数/字符串,以逗号分隔。第一个数字是根据Wolfram代码的规则编号(每个规则的标准名称)。第二个是初始启动配置。第三个和第四个描述了什么模式以及应将多少模式附加到启动配置的左侧。作为填充。第五和第六在右侧也是如此。最后一个数字是运行模拟的世代数。 因此,输入示例为90,11,0,4,0,4,5。这应该告诉您的程序您正在运行规则90。它还应该告诉程序您希望初始配置是11在字符串的0两端都附加4次,因此实际的开始模式是0000110000。它还告诉您的程序将此模拟运行5代。 输出您的程序应该打印每一代的整个单元格数组(用换行符分隔),以便输出是CA的时空图。对于每一代,根据作为输入提供的规则,每个单元的状态由其状态和紧靠左侧和右侧的单元的状态确定。模拟应围绕边缘。首先打印的应该是gen的起始数组。0。 输入90,11,0,4,0,4,5应尽可能精确地产生以下输出。 0000110000 0001111000 0011001100 0111111110 1100000011 0110000110 请注意,起始状态不包括在五代中。还要注意,模拟环绕着边缘。 更多例子 输入: 184,1100,01,2,01,1,4 输出: 0101110001 1011101000 0111010100 0110101010 0101010101 输入: 0,1011,1,0,0,1,2 输出: 10110 00000 00000 有关一维CA如何工作以及如何编号的更多信息

4
Groovy打高尔夫球的秘诀
当我看到许多问题以他们感兴趣的语言询问打高尔夫球的技巧时,我决定询问我最喜欢的语言:Groovy。人们可以提供一些技巧和技巧,这些技巧和技巧将用于Groovy的高尔夫运动中。
14 code-golf  tips 

9
编写一个函数,返回给定动词的过去式
挑战 编写一个函数,该函数接受一个作为动词的自变量,并返回该动词的过去式。(假设动词是规则的) 过去式 注意:认为y既不是辅音也不是元音。 通常,仅ed在动词结尾之后加一个即可使动词的过去时。 例如:jump→ jumped,ask→asked 但是,还有其他规则。 如果给定动词的最后一个字符是e,只需加d。 例如:love→ loved,move→moved 如果动词以辅音+结尾y,则y改为i,并加ed。 例如:study→ studied,cry→cried 但是,如果动词以元音+结尾y,则只需添加即可ed。 例如:play→ played,stay→stayed 如果动词以元音和辅音结尾,则再写一次辅音,然后添加ed。 例如:stop→ stopped,plan→planned 但是,如果一个动词以多个元音+一个辅音或一个元音+多个辅音结尾,则只需添加即可ed。 例如:look→ looked,jump→jumped 还有更多规则,但让我们只关注规则。例如,根据上述规则,visit→ visitted。 优胜者 由于这是代码高尔夫球,因此正确返回过去时态的最短代码将获胜。 范例(JS,127) function f(x){return x.replace(/([^aeiouy])y$/,'$1i').replace(/([^aeiouy][aeiou])([^aeiouy])$/,'$1$2$2').replace(/e$/,'')+'ed'}
14 code-golf  string 

5
写你自己的死亡笔记
基拉需要您的帮助! 输入格式: Date [and/or Time] Name Gender Reason 输出格式: <Last Name, First Name> <will die/died> on the <DD><st/nd/rd/th> of <MMM, YYYY> [at <hh:mm:ss TT>]. <He/She> <will die/died> of <Reason>. 详细信息,详细信息: 您的程序应至少说明以下日期输入格式: 9 November 2003 9/11/2003 November 9, 2003 时间格式: hh tt hh TT hh:mm tt hh:mm TT hh:mm:ss tt hh:mm:ss …
14 code-golf 


2
最快的python代码,可在此游戏中找到一组获胜的单词
这是一组针对儿童的活动卡片中的文字游戏。规则下方是使用/ usr / share / dict / words查找最佳三元组的代码。我认为这是一个有趣的优化问题,想知道人们是否可以找到改进的地方。 规则 从下面的每组中选择一个字母。 使用所选字母(和其他字母)选择一个单词。 得分。 所选集合中的每个字母都会获得该集合中显示的数字(包括重复项)。 AEIOU 数0 其他所有字母均为-2 重复两次以上的步骤1-3(不要在步骤1中重复使用字母)。 最终分数是三个单词分数的总和。 套装 (设置1分1分,设置2分2分,依此类推) LTN RDS GBM 热电联产 FWV YKJ QXZ 码: from itertools import permutations import numpy as np points = {'LTN' : 1, 'RDS' : 2, 'GBM' : 3, 'CHP' : 4, …

5
文字迷宫求解器
给定stdin上的迷宫和入口点,编写一个程序,在stdout上打印到出口的路径。只要您的程序不会为每个迷宫生成平凡的路径(穿过迷宫中的每个点),任何路径都是可以接受的。 在输入中,墙壁用a标记,#入口点用a 标记@。您可以使用任何字符在输出中绘制迷宫和路径,只要它们完全不同即可。 您可以假设: 入口和出口点在输入的边缘 输入的每一行都具有相同的长度 迷宫可解且无循环 只有一个出口 最短的(Unicode)字符计数解决方案获胜。 例子 (请注意,输入用空格填充) #### # # @ ##### # # # ####### #### # # @*##### #* # #****** ####### ### ################### ### # # ## ######### # # # ##### # ############### #@## ###*################### ###*********#*********# ## *#########* # *# # *********** …

30
在不使用按位运算符的情况下,以二进制数打印1的数量
描述 给定一个数字,1以二进制表示形式打印它具有的s 数量。 输入值 >= 0以10为底的数字不会超过您的语言能够处理的最高数字。 输出量 1s 的数量(以二进制表示)。 获奖条件 最短的代码获胜。 不允许的 按位运算符。允许其他运算符,例如加法和乘法。 内置基本转换功能。 例子 Input: Ouput: 56432 8 Input: Output: 45781254 11 Input: Output: 0 0

10
子手文字游戏高尔夫
受reddit启发。 编写一个播放Hangman的程序。 程序从N个单词的列表中选择一个随机单词,其中N> 2。 单词列表可以通过您选择的任何方式提供给程序。 每次迭代 使用下划线将尚未发现的字母打印出游戏状态: H _ N _ _ _ N 打印剩余尝试次数 10 从stdin读取字母,并更新游戏状态,如果他们猜错字母,则减去尝试次数。 A (输入) H A N _ _ A N 10 重复直到猜出所有字母或尝试达到0 使用任何语言 最少的字符数获胜。 绘制绞刑架不是必需的,但是会赢得赞誉和赞誉。

10
指数的最后一位
在此任务中,您将获得A(少于10000位数字)和B(少于2 ^ 64),并且需要计算(A·A·A·...·A(B次))。 输入A和B在一行中以空格隔开;输入由EOF终止。 输入值 34543232321323243242434544533445343432434311112223454323232132324324243454453344534343243431111222345432323213232432424345445334453434324343111122234543232321323243242434544533445343432434311112223454323232132324324243454453344534343243431111222345432323213232432424345445334453434324343111122234543232321323243242434544533445343432434311112223454323232132324324243454453344534343243431111222 22337254775808 38758436543765743875437656358764347568437658743658743454354645645543532487548758475847684756897548758457843758437584758478574857438758436587436587436587643875643856783478743658743658764387564387564378658437658743658743687564387564387564765746576475647564756475465746574675647654765476547534587545689475689748574385743765874585743857843765893748643587438957458754376543265874387564384764367584375874758943267632487564357 54545454123 6777744348435743587643756438765436574587564354375674365645643675 23232 3875843654376574357 54545454 输出量 6 3 5 9 约束条件 请勿使用任何内置函数或重载运算符来计算A B(您实际上根本不需要计算它)。 最短的解决方案获胜!
14 code-golf  math 

11
古老的爱尔兰祝福
我不知道是谁创造了这些词,而且我不是爱尔兰人,但我给您带来爱尔兰祝福: May the road rise up to meet you May the wind be always at your back May the sun shine warm upon your face The rains fall soft upon your fields And until we meet again May God hold you in the hollow of His hand 我本打算从现在起几周后发布此消息,但我突然意识到昨天是圣帕特里克节。 规则: 准确产生以上文字。 …

9
曼彻斯特编码数据流
曼彻斯特编码是一种用于无线电通信的电信协议,该协议可确保按固定间隔进行位转换,因此接收器可以从数据本身中恢复时钟速率。它使比特率翻倍,但价格便宜且易于实现。它被业余无线电运营商广泛使用。 这个概念非常简单:在硬件级别,时钟和数据线只是简单地异或在一起。在软件中,这被描述为将位的输入流转换为双倍速率的输出流,每个输入“ 1”转换为“ 01”,每个输入“ 0”转换为“ 10”。 这是一个容易解决的问题,但由于其比特流的性质,因此对许多实现开放。即,编码在概念上是逐位处理而不是逐字节处理。因此,我们都同意字节序,输入的最低有效位成为输出的最低有效字节。 打高尔夫球的时间!编写一个函数,给定任意长度的字节数组,该函数返回该曼彻斯特编码数据的数组。 在位流中,应将输入和输出视为低位字节序,最低有效字节在前,最低有效BIT在前。 ASCII位流图: bit # 5 4 3 2 1 0 5 4 3 2 1 0 IN ------- 1 0 1 0 1 1 ---> [manchester encoder] --- 01 10 01 10 01 01 ----> OUT 例子: Example 1 (hex): LSB MSB …
14 code-golf  binary 

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.