Questions tagged «code-challenge»

代码挑战赛是一种创造性的竞赛,可以用客观的获胜标准来解决编程难题,而其他得分标记(例如,代码高尔夫)则无法涵盖这些目标。

4
找回密码
普通的N位数字密码锁由N个旋转盘组成。每个光盘上都有按顺序刻印的数字0-9,您需要将它们转换为正确的密码才能打开它。显然,如果您不知道密码,则在解锁之前最多需要尝试10 N次。那没意思。 因此,让我们考虑一下组合锁的一种变体,将其命名为距离公开锁。 在每次尝试不打开距离显示锁的尝试中,它都会响应最小数量的动作以解锁。 一个运动是通过一个位置定义为一个旋转,例如,它需要从1个运动890到899,并且从9个运动137到952。 挑战 给定具有密码未知的距离揭示锁,请尝试以最少的尝试次数(而不是移动)打开锁,同时防止程序过长。 规则和计分 您应该编写一个完整的程序,该程序将从stdin输入并将其输出到stdout。该程序应执行以下输入/输出: Start Input an integer N (number of digits) from stdin Do Output a line containing decimal string of length N (your attempt) to stdout Input an integer K (response of the lock) from stdin While K not equal 0 End 您的程序最多可以处理N …

7
因子总数
给定n> 1的正整数,确定乘以n大于1的整数可以得到多少个数字。例如,如果n = 24,则可以通过以下方式将n表示为乘积 24 = 24 -> 24 = 24 24 = 12 * 2 -> 12 + 2 = 14 24 = 6 * 2 * 2 -> 6 + 2 + 2 = 10 24 = 6 * 4 -> 6 + 4 = 10 24 = …

13
解决秘密交换序列
这是警察和强盗的挑战,可以在此处找到警察线程。 这是强盗线程,您的工作是在警察线程上进行投稿,并尝试查找隐藏的序列。如果找到任何可以替换为原始代码的序列,以计算该序列为有效破解。请在发生裂缝时通知警察,以便他们更新答案。 计分 您的分数将是您成功破解的次数,越多越好。

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

3
让我们玩捉迷藏吧!
用户将隐藏,计算机将尝试找到它们。 首先,程序将为网格的大小输入一个值。像5x5、10x10、15x15等。网格并不总是完美的正方形。 网格有点像棋盘: _______________________________ | | | | | | | A1 | | | | | A |_____|_____|_____|_____|_____| | | | | | | | | B2 | | | | B |_____|_____|_____|_____|_____| | | | | | | | | | C3 | | | C |_____|_____|_____|_____|_____| | …

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

2
注册计算器挑战
一个简单的注册计算器 这个挑战涉及一个简单的注册计算器,该计算器的工作方式如下: 它有一些名为的寄存器A,B,C,...,Z,每个寄存器可以包含一个整数,它们都被初始化为0。 它执行3个字符的指令:任何指令的第一个字符是+,-,*,/,=(加,减,乘,除,复制)之一,第二个字符是寄存器的名称,第三个字符是寄存器的名称或一个的0,1。指令的含义应该很清楚,这里有一些例子: +AB表示“将寄存器的值设置A为的结果A + B”,对于,类似-AB,*AB,/AB。除法A / B与C中相同。 +A1手段“递增寄存器A的1”,并且类似地-A1递减A的1。 =AB装置“的值复制B到寄存器A,类似地=A0,=A1套A到0,1分别。 它以一串连续的指令作为输入,并返回上一个操作的结果,例如: 鉴于=A1+A1*AA它返回4。 鉴于+A1+A1=BA+A1*AB它返回6。 鉴于+A1+A1+A1*AA=BA-B1*AB它返回72。 用您喜欢的编程语言编写这样的计算器很容易,这里是Python的示例: def compute(cmd): opr = {"=": lambda x, y: y, "+": lambda x, y: x + y, "-": lambda x, y: x - y, "*": lambda x, y: x * y, "/": lambda x, y: …

3
萝卜。所以。许多。萝卜
该死的,那是很多胡萝卜。 灵感来源 任务 您必须创建一个程序,以尽可能多的语言,将每个实例替换^为markdown格式的链接(这意味着如果我将其发布在答案中,它将自动将其读取为图像并将其放置在图像中的的话)这种朝上的胡萝卜。 如何使用上述格式: 首先,在文件中的任何位置,像这样放置链接(这是我针对此问题所做的操作): [1]:http://i.stack.imgur.com/mecHl.png 然后,无论您在哪里想要它: [![] [1]] [1] 规则 适用标准漏洞。 输入将通过STDIN或等效输入。 输出将通过STDOUT或等效输出。 您的代码必须是您使用的所有语言的完全可运行的程序。 你用你的胡萝卜的URL并没有必须是一个在这个答案。这只是一个例子。您可以使用任何 URL,只要SE的Markdown可以显示该特定的胡萝卜。 这是一个多语言的挑战,因此使用最多的胡萝卜语言的答案会成功! 如果是平局,则以语言数量最多的条目的最短代码大小为准。 编辑: 另外,请勿使用琐碎的语言衍生词!这意味着使用替代语言(Brainfuck与ShadyAsFuck)和不同的语言版本(Python 2与Python 3)。 有很多适合的琐碎小东西(包括9001 BF变体) 别那样 注意:是的,在支持正则表达式的语言中,该程序将显得微不足道。但是,竞争是看竞争对手可以使用几种语言。

1
无损英语文本压缩挑战[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 4年前关闭。 挑战: 您面临的挑战(您应该选择接受它)是压缩和解压缩5MB的“ 威廉·莎士比亚全集 ”,如下所示:http : //www.gutenberg.org/cache/epub/100/pg100.txt (MD5: a810f89e9f8e213aebd06b9f8c5157d8) 规则: 您必须STDIN通过STDOUT... 输入和通过... 输出 ...并且您必须为输入提供相同的解压缩结果。 (也就是说,您必须能够获得cat inpt.txt | ./cmprss | ./dcmpress | md5和上面相同的 MD5。) (任何via STDERR都将被丢弃。) 您的总源代码必须使用少于2048个字符。 (这是不是代码高尔夫球场。你是不是是基于源代码的长度进球了。这是只是一个让事情变得有限规则。) (如果已拆分,请采用所有源代码的串联长度。) 您还必须能够(理论上)处理类似的纯文本输入。 (例如,硬编码仅能输出所提供的莎士比亚输入的机制是不可接受的。) (其他文档的压缩大小无关紧要,只要解压缩的结果与替代输入相同即可。) 您可以使用任何一种或多种语言。 (例如,随时使用进行压缩awk和进行解压缩java) 您可以编写两个单独的程序,也可以根据需要将它们与某种形式的“开关”组合在一起。 (必须清楚演示如何调用压缩和解压缩模式) 您不得使用任何外部命令(例如,通过exec())。 (如果您使用的是外壳语言,对不起。您必须使用内置的语言。欢迎您发布“不可接受的”答案,以便分享和享受,但不会被评判! ) 您不得使用任何内置功能或库提供的功能,这些功能的目的是压缩数据(例如gz,等) (在这种情况下,更改编码不视为压缩。在这里可以酌情采取一些措施。请在提交中随意争论您的解决方案的可接受性。) 如果选择参加,请尝试玩乐! 所有好的比赛都有获胜的客观定义;因此 如果遵守所有规则,则最小的压缩输出(以STDOUT字节为单位)将获胜。 (请通过报告您的输出./cmprss | wc -c) 在平局的情况下(相同的输出大小),大多数社区会投票赞成获胜。 …

1
有效迷宫数
给定一个WxH网格,有多少种可能的迷宫? 您对迷宫的了解: 网格正好是H正方形,W正方形是正方形。 共有三种类型的正方形:“开始”,“完成”和“空”。迷宫必须正好包含1个开始点和1个结束点,所有剩余的方块均为空。 整个迷宫周围都有墙壁。 除非违反以下规则,否则墙可以存在于任意两个正方形之间的边缘上: 从开始方块到完成方块必须存在一条路径。 因此,给定两个数字W和H,您必须返回一个数字,代表可能的正方形/墙壁配置的数目。您保证W*H > 1 例如,2x2迷宫具有完全100不同的可能配置。 这是一个代码高尔夫球,所以最短的答案是成功的!

2
建立一个采矿机器人
您的程序将控制采矿机器人在地下搜索有价值的矿物。您的机器人会告诉控制器您要移动和挖掘的位置,控制器将提供有关机器人状态的反馈。 最初,将为您的机器人提供矿山的图像图,其中已经存在一些矿井,以及一个数据文件,用于指定矿山中矿物的值和硬度。然后,您的机器人将在轴中移动,以寻找有价值的矿物质。您的机器人可以挖土,但会因坚硬的岩石而减速。 24小时轮班后返回最有价值货物的机器人将成为赢家。这似乎是一个复杂的挑战,但制造基本的采矿机器人很简单(请参阅下面的示例采矿机器人答案)。 运作方式 控制器将使用矿井图像,矿物数据和设备文件名启动您的程序。机器人可以使用矿山图像和矿物数据找到有价值的矿石并避开坚硬的岩石。机器人可能还想从设备列表中购买设备。 例如: python driller.py mineimage.png minerals.txt equipmentlist.txt 在2秒钟的初始化时间后,控制器通过stdin和stdout与机器人程序通信。机器人必须在收到状态消息后的0.1秒内做出响应。 每转一圈,控制器就会向机器人发送一条状态行: timeleft cargo battery cutter x y direction 例如: 1087 4505 34.65 88.04 261 355 right 整数timeleft是班次结束前剩下的游戏秒数。在 cargo如此远不如你付出什么设备已开采矿物的整数值。该battery级别是你的电池剩余电量的整数百分比。的cutter整数水平是切割器作为标准值的百分比的当前锐度。的x和y值与在(0,0)从左上角引用的机器人位置的正整数。方向是机器人当前面对的方向(左,右,上,下)。 当您的机器人收到“ endshift”或“ failed”输入时,您的程序将很快终止。您可能希望机器人将调试/性能数据首先写入文件。 控制器将接受4种可能的命令。direction left|right|up|down会将您的机器人指向该方向,并需要15个游戏秒。move <integer>会指示您的机器人向前移动或挖掘很多单位,这取决于切割的矿物的硬度和刀具的锋利度(请参见下文),需要一些时间。buy <equipment>将安装指定的设备并从您的货物价值中扣除成本,但前提是机器人位于水面(y值<= y的起始值)。设备安装需要300游戏秒。特殊命令snapshot将当前的地雷映像写入磁盘,并且不占用游戏时间。您可以使用快照来调试机器人或创建动画。 您的机器人将以100电池和100切割器清晰度启动。移动和转动会消耗少量电池电量。挖掘的用途更多,并且取决于矿物的硬度和刀具的当前清晰度。当您的机器人挖掘矿物时,切割机将失去锐度,这取决于所花费的时间和矿物的硬度。如果您的机器人有足够的货物价值,它可能会返回地面以购买新的电池或刀具。请注意,高质量的设备的初始有效性超过100%。电池的名称中包含字符串“ battery”,切割器的名称中包含“ cutter”(惊奇)。 以下关系定义了移动和切割: timecutting = sum(hardness of pixels cut) * 100 …

4
最短的代码写最长的代码
您面临的挑战是用您选择的语言创建最短的代码,该代码将最长的代码写在.txt文件上,以将两个数字相乘作为输入并输出答案,从而将两个数字相乘。 不需要输入代码来执行写作业! 生成器代码和生成的代码可以使用任何语言 请勿使用无限制的序列或级数来放大文本文件。 不要使用不必要的语句来增加分数。 评分 ( size of text file generated in bytes ) (without any unnecessary white spaces, tabs or newlines) ----------------------------------------- ( size of your code in bytes ) 优胜者 从现在开始的1个星期内将选出最高分数的优胜者。 编辑:代码中输入两个数字的范围应介于-32768至32767之间

1
通过整数操作实现IEEE 754 64位二进制浮点数
(我暂时将问题标记为“ C”,但是如果您知道另一种支持联合的语言,则也可以使用它。) 您的任务是+ - * /为以下结构构建四个标准数学运算符: union intfloat{ double f; uint8_t h[8]; uint16_t i[4]; uint32_t j[2]; uint64_t k; intfloat(double g){f = g;} intfloat(){k = 0;} } 这样操作本身就只能操纵或访问整数部分(因此也不能在操作过程中的任何时候都与double进行比较),并且结果是完全相同的(对于非数字结果,例如,功能上是等效的NaN)好像相应的数学运算已直接应用于double。 您可以选择要操作的整数部分,甚至可以在不同的运算符之间使用不同的整数部分。(尽管我不确定您是否要这样做,您也可以选择从联合中的任何字段中删除“未签名”。) 您的分数是四个运算符中每个字符的代码长度总和。最低分获胜。 对于不熟悉IEEE 754规范的我们来说,这是一篇有关Wikipedia的文章。 编辑: 03-06 08:47在intfloat结构中添加了构造函数。您可以使用它们进行测试,而不必手动设置double /etc。

4
设置我的微波炉[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 3年前关闭。 我很懒惰,所以我尽量总是用最少的按键来编程微波炉。我的微波炉有以下按钮: 一个“分钟加”按钮,只能先按一下,并表示“开始”。可能会多次按下它几分钟,但不会在手动输入的时间上增加一分钟。 输出量+ 一组0-9按钮。时间输入为MMSS(即“ 130”表示1分30秒)。秒的范围从0..99。因此,“ 130”和“ 90”是等效的条目。显然,即使输入的秒数部分超过59,每分钟也是60秒。 输出0..9 如果手动输入时间,则必须按下“开始”按钮才能启动微波炉。 输出量S 我的食品包装以MM:SS指定时间,因此程序必须接受该输入。 例子 1:00是+(记住“分钟加”表示开始) 1:01是61S(秒可以超过59,但是“分加”不能与数字结合使用-我认为这是我微波炉的设计缺陷) 9:00是900S(比短+++++++++)

10
创意编程[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 8年前关闭。 用您的编程编写故事。JavaScript中的示例: self.book = { "story": function() { var once = "upon", aTime = setTimeout(function() { // Code would continue... }, 1000) } }; self.book.story(); 规定: 在编译之前,之中和之后必须运行无错误。 每个字符串/名称最多只能使用两个单词作为故事。 JavaScript示例: var story = "Once upon a"; // Wrong (Using more than two words) var …

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.