Questions tagged «code-golf»

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

8
平方数数字密度
我自己发明的数字的平方数字位数密度(SNDD)是连续数字中发现的平方数字计数与数字长度的比率。例如,169是一个3位数字,包含4个正方形数字-1、9、16、169-,因此正方形数字的数字密度为4/3或1.33。4位数字1444具有6个正方形-1、4、4、4、144、1444-因此比率为6/4或1.5。注意,在前面的示例中,正方形可以重复。另外,不允许441,因为无法在数字1444内连续找到它。 您的任务是编写一个程序,该程序在给定范围A-B(含)范围内搜索平方位数最高的数字。您的程序应遵守以下规范: 输入A,B的范围为1到1,000,000,000(10亿)。例:sndd 50 1000 结果返回SNDD最大的数字。如果是平局,则返回最小的数字。 0不会以任何形式(0、00、000等)算作正方形。以0开头的正方形(如049或0049)也不算。 注意,整数不必一定是平方数。 例子: sndd 14000 15000 Output: 14441 sndd 300 500 Output: 441 奖金:SNDD最大的数字是1到1,000,000,000?您能否证明这是最大的可能性,还是更大范围的更大? 当前分数: 红宝石:142 Windows PowerShell:153 斯卡拉:222 蟒蛇:245 现在已经选择了答案,这是我在JavaScript中的(unolfed)参考实现:http : //jsfiddle.net/ywc25/2/

4
ASCII艺术Bresenham线条图
编写最短的程序,用ASCII艺术画出一条布雷森纳姆线。您的程序应使用两个整数x和y(选择命令行或标准输入),并绘制一个ASCII行,该行从左上方开始,向右移动x,向下移动y。您必须使用_和\字符,并根据Bresenham的算法将其放置在正确的位置。 您可以假设x >= y,因此不需要垂直线段。 请注意,由于您使用的是_字符,因此与之对应的一行y=3可能需要输出4行文本(并且在不必要时可能会发出前导空白行)。 例子: 11 3 _ \___ \___ \_ 11 1 _____ \_____ 5 4 \ \_ \ \ 对于正好是中点的点,您可以选择任一取整: 10 1 ____ \_____ or _____ \____

24
12天的圣诞节歌词
我认为这对每个人来说都是一个有趣的挑战,我很好奇看到人们提出的解决方案。 打印“圣诞节的12天”的歌词 On the first day of Christmas, my true love gave to me, A partridge in a pear tree. On the second day of Christmas, my true love gave to me, Two turtle doves, And a partridge in a pear tree. ... On the twelfth day of Christmas, My …

7
井字游戏词典
一个TicTacToe游戏可以用一个字符串来表示,该字符串表示玩家移动时的位置顺序。 0 1 2 3 4 5 6 7 8 假设X总是先播放。 因此,字符串“ 012345678”表示游戏 XOX 氧代 XOX 请注意,当玩家X标记时,该游戏已经获胜6,这时游戏结束,向授予胜利X。(即,一旦玩家获胜,忽略其余的举动) 您面临的挑战(代码)是打印所有游戏(排序顺序)及其结果。 格式 <movesequence>:<result>\n 例如: 012345678:X 012345687:X 012345768:X ... 表示X第一个玩家获胜,O第二个玩家和D平局。 将有9!(362880)个游戏。 这是一些数据以验证您的结果。 'X' Wins: 212256 'O' Wins: 104544 Draws : 46080 这是一个代码高尔夫,运行时应在一分钟之内。玩得开心! 编辑:删除了多余的详细信息,然后将其打印在上stdout。无需创建文件。

30
将单词中的字母“相加”
我父亲是一位退休的老师,他经常提供拼写和数学测验的组合,学生可以在其中拼写一个单词,然后通过将字母加起来(其中a = 1,b = 2等)来“打分”该单词。 (例如cat = 3 + 1 + 20 = 24)。这使对测验进行评分变得更加容易,因为他只需要检查“分数”而不是拼写错误的单词即可,并且具有一次测试2个技能的额外好处。 他雇用了我的一个朋友来编写一个程序,该程序可以为他打分,因此他可以生成冗长的答案键而不会出错。该问题是受该程序启发的。 要求: 接受任何带有大写和小写字母的单词 返回任何特殊字符的错误,例如空格,连字符,@ ^%#等。 a = 1,b = 2,...和A = 1,B = 2,... 打印单词的分数 (可选)在计分后检查单词是否在字典中,如果不是,则打印警告。 无需导入外部字母->数字字典。您必须自己生成它。 任何语言都是可以接受的。这类似于“ 数字根战 ”,但要简单得多。
17 code-golf  word 

30
IPv4整数转换功能
编写最短函数以将IP地址转换为它的整数表示形式并将其输出为整数。 要将IPv4地址更改为其整数表示形式,需要进行以下计算: 将IP地址分成四个字节。 (Octet1 * 16777216) + (Octet2 * 65536) + (Octet3 * 256) + (Octet4) 样本输入 192.168.1.1 10.10.104.36 8.8.8.8 样本输出 3232235777 168454180 134744072

2
编写辐射硬化的辐照器
任务是编写辐射硬化的辐射器。我到底是什么意思? 辐照器是一个程序,当给定一个字符串作为输入时,它将输出该字符串的所有可能版本,并删除一个字符。例如,给定input Hello, world!,程序应输出: ello, world! Hllo, world! Helo, world! Helo, world! Hell, world! Hello world! Hello,world! Hello, orld! Hello, wrld! Hello, wold! Hello, word! Hello, worl! Hello, world 但是,必须保护辐照器免受其辐射,因此您编写的辐照器在穿过自身时也必须生存。也就是说,当删除程序的任何单个字节时,程序仍必须正常运行。 测试用例 abc -> bc; ac; ab foo bar -> oo bar:fo bar:fo bar:foobar:foo ar:foo br:foo ba source -> ource;surce;sorce;souce;soure;sourc; 技术指标 …

14
变相的排列
给定一个nnn维向量vvv与真正的条目,找到最接近的置换ppp的(1,2,...,n)(1,2,...,n)(1,2,...,n)相对于所述l1l1l_1 -distance。 细节 如果是更方便,你可以使用置换(0,1,...,n−1)(0,1,...,n−1)(0,1,...,n-1)代替。如果存在多个最接近的排列,则可以输出任何一个或全部替换。 两个向量u ,v之间的l1l1l_1距离定义为d (u ,v )= ∑ i | u i − v i | 。u,vu,vu,vd(u,v)=∑i|ui−vi|.d(u,v)=∑i|ui−vi|.d(u,v) = \sum_i \vert u_i-v_i\vert. 如果需要,可以假定输入仅由整数组成。 例子 [0.5 1] -> [1 2], [2 1] c*[1 1 ... 1] -> any permutation [1 4 2 6 2] -> [1 4 3 5 2], …

10
编写一个函数,返回与(x,y)4向相邻的所有有效点的可迭代对象
通常,算法类和计算机科学中非常普遍的需求是在网格或矩阵上(例如在BFS或DFS中)对4方向进行迭代。这似乎经常导致大量笨拙和冗长的代码,并且在循环内进行了大量的算术和比较。我已经看到了许多不同的方法,但是我无法撼动这种简单的方法。 面临的挑战是编写一个纯函数,给定一个有限平面的宽度和高度,该平面n, m起源于point (0,0),并且坐标(x,y)可以表示该平面内的任何有效点,返回平面内所有点的4方向可迭代对象毗邻(x,y)。 目的是在尽可能少的字节中定义该功能。 一些示例可帮助说明有效的输入/输出: n = 5 (y-axis), m = 3 (x-axis) (zero-based) matrix = [ [A, B, C], [D, E, F], [G, H, I], [J, K, L], [M, N, O], ] (x, y) => [valid iterable points] E: (1, 1) => [(1, 0), (2, 1), (1, 2), …

8
吉米需要您的帮助!
似乎最近,吉米人死了很多,在这里和这里都可以看到,要求您确定吉米是否会跌倒。现在是时候制止这种疯狂并设法拯救吉米了。 吉米有三个身体部位/,o以及\安排这样 /o\ 平台用表示-。如果吉米的身体部位不位于平台的正上方,则吉米会从平台上掉下来。 一些例子: /o\ - ------- 吉米会保持平衡,因为他们的所有身体部位都在身体之上-。 /o\ ------ --- 吉米将保持平衡,因为两个身体部位都在-s 之上。 /o\ -- ---- -- 即使将Jimmy分为两个平台,他们也会保持平衡 /o\ - 吉米不会平衡,因为两个身体部位不在平台上方。 由于我的平台供不应求,所以我只有长度为5的平台,重要的是我们使用的平台应尽可能少。 您的任务是输入Jimmys并输出一串平台,该平台将在输入中保存所有Jimmys。您的输出必须使用尽可能少的平台,但每个平台-的宽度必须为5 。 请注意,平台的规则是5 -宽,这意味着每个平台之间必须有一个空格。----------在输出中无效,因为它将被视为长度为10的平台,而不是长度为5的两个平台。 测试用例 /o\ /o\/o\ // input ----- ----- // output /o\ /o\ ----- ----- /o\ /o\ // same input as above ----- ----- // …

29
我反转了源代码,您反转了输入!
另一种公然敲竹杠一个的敲竹杠一个的敲竹杠。去投票那些! 您的任务(如果希望接受)是编写一个程序/函数,该程序输出/返回其字符串输入/参数。棘手的部分是,如果我反转源代码,那么输出也必须反转。 为简单起见,您可以假定输入始终是仅包含ASCII字母(az),数字(0-9)和空格的单行字符串。 应该支持至少8个字符长的输入(不必超过8个字符)。 空输入的行为是不确定的。 例子 假设您的源代码为ABC,其输入为xyz。如果我CBA改为编写并运行它,则输出必须为zyx。 假设您的源代码为ABC,其输入为96。如果我CBA改为编写并运行它,则输出必须为69。 只要前导或尾随空白在正常输出和反向输出中都一致,就可以接受。

20
贡献最大的行
给定一个非负整数的非空矩阵,请回答哪些唯一行对矩阵中元素总数的贡献最大。 通过任何合理的指示来回答,例如,唯一行的出现顺序(或排序顺序)的掩码,或这些行的索引(从零或一开始的索引),或由行组成的子矩阵(以任何顺序)或某些一种字典构造……–但要解释一下! 例子 [[1,2,3],[2,0,4],[6,3,0],[2,0,4],[6,3,0],[2,0,4]]: 唯一的行是[1,2,3],,[2,0,4]并且[6,3,0]每次出现时各自分别贡献6、6和9。但是,它们分别出现一次,三次和两次,因此它们各自的出现对总数(42)的贡献分别为6、18和18,因此后两行是贡献最大的。因此,有效的答案是: [false,true,true] 上面或 实际行的 外观/排序顺序或 [1,2]/ [2,3]基于零/一的索引的 掩码⋮ [[2,0,4],[6,3,0]] [[1,2],[3,1],[2,3],[1,2],[3,1],[2,3],[1,2]] [false,false,true](出现顺序)/ [false,true,false](排序次序) [2]/ [3](出现顺序)/ [1]/ [2](排序次序) [[2,3]] ⋮

9
XKCD日历事实
启示。经许可张贴。 打印可能的XKCD日历“事实”之一: 您可以从我的APL参考实现或Explain XKCD的成绩单(包括插图下方的标题文本)中获取原始文本和结构。 规则 在每个决策节点,每个选择都必须有相等的(伪)随机机会。 您可以全部使用大写字母。 您必须生成三个句子;问题,原因和标题文字。 三句话应被结束?,.以及.分别与由单个空间彼此分离。 您可能包括的唯一额外空白是一个尾随空格和/或换行符。 例子 Did you know that the Latest Sunset drifts out of sync with the Zodiac because of time zone legislation in Indiana? Apparently it's getting worse and no one knows why. While it may seem like trivia, it has to …

26
编写这个代码不太难吗?
您必须使用输出此模式的任何语言编写程序或函数: ~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||~ |~|||||||||||||||||||||||||||||||||||||||||||||||||||||||||~| ||~|||||||||||||||||||||||||||||||||||||||||||||||||||||||~|| |||~|||||||||||||||||||||||||||||||||||||||||||||||||||||~||| ||||~|||||||||||||||||||||||||||||||||||||||||||||||||||~|||| |||||~|||||||||||||||||||||||||||||||||||||||||||||||||~||||| ||||||~|||||||||||||||||||||||||||||||||||||||||||||||~|||||| |||||||~|||||||||||||||||||||||||||||||||||||||||||||~||||||| ||||||||~|||||||||||||||||||||||||||||||||||||||||||~|||||||| |||||||||~|||||||||||||||||||||||||||||||||||||||||~||||||||| ||||||||||~|||||||||||||||||||~|||||||||||||||||||~|||||||||| |||||||||||~|||||||||||||||||~|~|||||||||||||||||~||||||||||| ||||||||||||~|||||||||||||||~|||~|||||||||||||||~|||||||||||| |||||||||||||~|||||||||||||~|||||~|||||||||||||~||||||||||||| ||||||||||||||~|||||||||||~|||||||~|||||||||||~|||||||||||||| |||||||||||||||~|||||||||~|||||||||~|||||||||~||||||||||||||| ||||||||||||||||~|||||||~|||||||||||~|||||||~|||||||||||||||| |||||||||||||||||~|||||~|||||||||||||~|||||~||||||||||||||||| ||||||||||||||||||~|||~|||||||||||||||~|||~|||||||||||||||||| |||||||||||||||||||~|~|||||||||||||||||~|~||||||||||||||||||| 输出由20行组成,每行61个字符。 规则 禁止出现标准漏洞 输出末尾可能只有一条尾随换行符 在输出的任何行上可能没有尾随空格 如果没有尾随换行符,则输出的md5校验和为fde4e3b4606bf9f8c314131c93988e96。 在尾随换行符的情况下,输出的md5校验和为1f0b43db4fec6594be202c8339024cb7。 这是code-golf,因此以字节为单位的最短代码获胜。

23
让我们移动火星探测器!
摘要 任务是导航火星探测器,并告知其最终坐标和方向。 输入: 首先输入: 首先,您的程序必须采用以下格式的输入: [X-Coordinate],[Y-Coordinate],[Direction] 方向必须是:N或S或E或W(北,南,西,东的起始字母) 示例:( 10,20,Nx = 10,y = 20,方向= N(北)) 第二输入: 所述第二输入包括一系列的R,L,M右,左,分别移动。 对于R和L(左右),流动站的方向必须相应更改。 对于M流动站,必须沿移动之前的方向向前移动1个单位。 计算坐标的规则: N = Y + 1 E = X + 1 S = Y - 1 W = X - 1 输出: 流动站的最终坐标和当前方向。 例: Enter initial data: 1,2,N Enter the instructions: MRMLM …

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.