编程拼图和代码高尔夫

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

9
帮助农民
农夫杰克很穷。他想减轻整个农场的负担,但要尽量减少成本。一盏灯可以照亮它自己的细胞以及它的八个邻居。他已经在自己的领域中安排了灯具,但是在您是否需要保留额外的灯具时需要他的帮助。 多余的灯:从农场中移出的灯对点亮的细胞数量没有影响。同样,您将指向的灯不会一一卸下,但同时会被卸下。 注意:您只能执行的操作是卸下一些灯。您不能重新排列或插入灯。您的最终目标是删除最大数量的灯,以使之前点亮的每个单元仍然点亮。 帮助农民杰克发现最大数量的无用灯,以便他可以在其他地方使用它们。 输入值 您将在字段M和N的第一行尺寸中找到。接下来的M行包含N个字符,每个字符代表该字段。 “ 1”代表保留灯的单元格。 “ 0”表示一个空单元格。 输出量 您必须输出一个包含无用灯数量的整数。 样本输入: 3 3 100 010 001 样本输出: 2 优胜者: 由于它是代码高尔夫球,因此获胜者将是成功完成任务的最少字符数的人
10 code-golf 

6
TUT语言翻译器
通过将每个字母替换为相应的“ TUT单词”,可以将文本翻译为TUT语言的书面版本,如下表所示(摘自链接文章)*: a e h hash o o u yu b bub i ay p pup v vuv c kut j jag q kwak w waks d dud k kak r rut x eks e i l lul s sus y yak f fuf m mum t tut z zuz …
10 code-golf  string 

5
生成Skolem序列
Skolem序列 甲斯科伦序列是序列2n号,其中每个数字i之间1和n恰好出现两次,两次出现之间的距离i是准确i的步骤。以下是Skolem序列的一些示例: 1 1 1 1 4 2 3 2 4 3 16 13 15 12 14 4 7 3 11 4 3 9 10 7 13 12 16 15 14 11 9 8 10 2 6 2 5 1 1 8 6 5 以下序列不是 Skolem序列: 1 2 1 2 …

14
Triforce ReBoot [关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 看到你好世界如何事与愿违,这是一个困难的过程。 我爱Zelda,也爱ReBoot。 创建以下 要求: 它必须是一个窗口(可以是任何窗口,甚至是浏览器等)。 窗口可以是任何大小。 窗口中除图片外可能不包含其他任何内容。 窗口不应立即自行关闭。 三角形必须是任何蓝色阴影。 圆圈必须是任何绿色阴影。 较小的三角形必须 通过提供链接来接触“ 禁止偷窃”图像的边缘。 条件:最短的代码获胜。 PS:是的ReBoot徽标略有不同,但这足够使它有趣。 编辑:我添加了另一个要求。似乎我们有很多非常聪明的人喜欢发现漏洞:PI爱你们。
10 code-golf 

5
今天(9月24日)是本田的生日[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 4年前关闭。 今天(9月24日)是本田公司的生日。他们最初的公司名称是 本田技研工業株式会社 我想要求给本田做个礼物。任务是使程序打印公司名称。您可以根据需要进行任何操作,但是只有一个规则,即不允许使用Unicode。它应该是ASCII艺术。 我想问一下代码和输出。一如既往地确定优胜者,我将研究代码的长度,但是在这种情况下,肖像也很重要。 编辑:输出必须看起来与此类似:本田技研工業株式会社

3
快速分裂制造工厂
背景 Manufactoria已经作为一种游戏进行了营销,但是我们的代码高尔夫球手可以真正地看到它:二维编程语言。Manufactoria编程语言基于单个队列,其中包含一系列彩色标记。指令指针使用传送带在游戏板上移动,并且遇到一系列读写器,它们在队列中进行读取和写入。 该语言非常容易理解,因此学习该语言的最快方法是玩游戏的前几个级别(上面有链接)。 挑战 您面临的挑战是创建一个可以在最短时间内将一个数除以另一个数的程序。 程序的输入将是一串X蓝色标记,后跟Y红色标记。所需的输出将是一串红色标记,长度为X / Y。 在此正式比赛级别中找到了要使用的游戏板: http://pleasingfungus.com/Manufactoria/?ctm=Divide_and_Conquer;Input_will_be_X_blues_followed_by_Y_reds,_output_X/Y_reds;bbbbbbrr:rrr|bbbrrr:r|bbbbr:rrrr|r:|bbbbbbbbbbbbbbbbbbbbbbbbbbrr rrrrr; 13; 3; 0 它是13x13(最大尺寸),并且已预先配备了正确的测试(请参阅评分部分)。 计分 您的课程分数是该课程通过官方竞赛级别的所有测试所花费的总时间。总时间在级别完成屏幕上给出。 在运行测试时,您很可能必须使用左下角的50倍加速滑块才能快速接收结果(时间加速不会影响得分)。 这是测试中涉及的除法问题的列表: 6/2 = 3 3/3 = 1 4/1 = 4 0/1 = 0 12/4 = 3 12/3 = 4 9/3 = 3 10/2 = 5 示例I / O 12/3=4 in: BBBBBBBBBBBBRRR out: …

10
产生一个直角三角形
在此挑战中,您必须采用两个数字(以空格分隔)作为输入,并输出由xs 组成的ASCII直角三角形。 第一个数字是您应该输出的三角形的宽度和高度。第二个数字是直角将位于哪个角。这些角的编号为1到4,从左上角开始,以英语阅读顺序排列: 1 2 3 4 例如(输入及其各自的三角形输出): INPUT | 3 1 | 3 2 | 3 3 | 3 4 ------+-----+-----+-----+---- OUT- | xxx | xxx | x | x PUT | xx | xx | xx | xx | x | x | xxx | xxx 程序的输出必须与这些示例的输入完全匹配。 输入将始终有效:第一个数字将为≥1的整数,第二个数字将为1、2、3或4。 …

3
罗塞塔石碑挑战:画一个盒子
Rosetta Stone挑战赛的目标是用尽可能多的语言编写解决方案。炫耀您的编程多语言! 挑战 您面临的挑战是要实现一种程序,该程序将以尽可能多的编程语言输入数字列表并输出数据的箱形图。箱形图将显示数据中的四分位数和离群值,甚至具有比例。您可以使用您的语言具有的任何标准库函数,因为这主要是语言展示。 什么是“箱形图”? 一个箱形图的图表数据的一种方式。箱形图具有一些基本功能。第一个特征是一个盒子,盒子的任一侧位于数据的第一和第三四分位数处。在箱形图的中心下方有一条线,给出了中位数。在箱形图的两端,都有“晶须”帮助显示数据的方差。晶须从盒子延伸到数据集中的最低和最高点,不包括异常值。离群值绘制为单个点。 首先,取数据的中位数。然后,取所有严格小于中位数的数据点,并计算该集合的中位数,使其成为第一个四分位数(Q1)。取所有严格大于中位数的数据点,然后计算该集合的中位数成为第三个四分位数(Q3)。找到的值R = 1.5*(Q3 - Q1)。减去Q1 - R这个的任何数字都是离群值。任何大于Q3 + R异常值的数字。取所有不是异常值的数据点的集合,该集合的最小值和最大值确定两个晶须的末端。 输入值 输入将以数字开头n=。然后会有n数字,每行一个。所有数字都是0到63之间的整数,包括0和63。 n=8 29 1 22 18 12 16 16 22 输出量 输出将是箱形图的再现。绘制图的一种可能方法是将其绘制为ASCII。您可以用ASCII以外的其他方式来绘制箱形图,但是主要的要求是绘制足够大的图形,以便可以分辨出重要特征的确切位置。箱形图应有一个比例尺,由大约5-10个等间距的数字组成。这是上述数据的一个示例图: +--+----+ | | | X +-+ | +------+ | | | +--+----+ 0 0 1 1 2 2 3 0 5 0 …

5
返回Manufactoria中输入的最后一种颜色
这个难题是我对Manufactoria系列挑战中的下一个难题。 背景 Manufactoria是一种游戏/二维编程语言。播放器必须创建将操纵队列以达到所需输出的程序。它很容易学习,但很难掌握,因此很容易造成各种各样的挑战。如果您不知道我在说什么,我建议您玩游戏的前几个教程级别。 挑战 您的挑战是创建一台机器,该机器将返回输入字符串的最后一个元素。为了使其更具挑战性,输入字符串可以是所有四种颜色的任意组合。 可在此处找到要使用的官方自定义级别: http://pleasingfungus.com/Manufactoria/?ctm=最后一行r; 13; 3; 0 ; 本周的挑战主要集中在压缩的概念上。我选择了这个挑战,需要大面积的传送带。所有四种颜色都出现在输入中的事实意味着很难存储信息。 尽管我没有尝试压缩,但我的第一个工作原型具有114个零件,可放入13x13的空间,几乎没有剩余空间。 计分 这项挑战的目标是尽可能使用一些零件。得分是放置的零件数,得分最低者获胜。 尽管只有8个测试用例,但是您的创作理论上应该能够在任何测试用例下运行。提供的测试用例用于调试目的。 例子 in: byrgyrbyrrgry out: y in: ggryybrryr out: r in: #don't you love degenerate cases? out: in: gyrbrygbrygbyrb out: b

3
计算电阻(书呆子狙击)
下午好,高尔夫球手, 我们今天的挑战是受XKCD漫画356和370启发的。我们将编写一个程序来计算一组电阻的电阻。预先警告说,这几乎足以应付代码挑战,但是我认为以高尔夫格式编写稍微复杂一些的程序是有一定道理的。最少的字符获胜。 计算电阻取决于以下两个公式: 如果电阻是串联的,则电阻是每个电阻的电阻之和 如果电阻是并联的,则电阻是每个电阻的电阻之和的倒数。 所以-例如: 您面临的挑战是,以最少的字符数来计算一组最多64个电阻器的电阻。对于复杂性,尤其是输入规则,我深表歉意。我试图以每种语言都可以使用的方式定义它们。 每个电阻将连接到2个或更多其他电阻。 保证输入有效,只有一个入口和一个出口点,它们将连接 网络将是串并联的,以防止需要比所展示的更多的数学运算 输入将通过文件,参数或标准输入,这取决于您的语言。 输入将由一系列换行符或正斜杠分隔的语句组成,这些语句由电阻的电阻的整数组成,并且用空格分隔电阻的一侧所连接的电阻的ID。 第一个电阻器的ID将为1,对于每个后续电阻器递增1。 开始将始终具有0的ID 最终电阻将始终具有0欧姆的电阻,并且仅在其线路中定义了连接 例如: 可以表示为 3 0 6 1 1 0 5 0 0 2 3 4 输出可以是stdout或文件。它可以通过以下方式之一表示: 一个数字,至少要保留2个小数位,后跟换行符 由整数(分子),正斜杠和另一个整数(分母)组成的分数,后跟换行符。分数不必为最低形式-例如4/4或10/8是可接受的。分数必须在1/100之内。完全准确没有任何好处-这是为了使没有定点或浮点运算的语言能够竞争而提供的拐杖。 我希望能涵盖所有问题。祝好运!

2
电子邮件验证
编写一个函数或程序,以放松您可以忽略注释并折叠空白()和通用地址文字的方式,根据RFC 5321(在5322中找到一些语法规则)来验证电子邮件地址CFWS。这给出了语法 Mailbox = Local-part "@" ( Domain / address-literal ) Local-part = Dot-string / Quoted-string Dot-string = Atom *("." Atom) Atom = 1*atext atext = ALPHA / DIGIT / ; Printable US-ASCII "!" / "#" / ; characters not including "$" / "%" / ; specials. Used for atoms. …

2
正多边形的区域
给定绘制了所有对角线的规则N形,对角线会形成多少个区域? 例如,正三角形的正整数为1,正方形的正整数为4,五边形的正整数为11,六边形的正整数为24。 分数与解决方案中的字节数成反比 可能会根据运行时间将小的软糖因素添加到分数中 多边形周围的区域不计算在内

1
从按键和模式缩放
你们大多数人可能都知道C大尺度: C D E F G A B C 主音阶的特征是相邻音符之间的间隔,以半音为单位: 2 2 1 2 2 2 1 从这些间隔中,我们可以从任何音符(音阶的关键)开始构建任何主要音阶。我们的12个音调相等的气质调音系统中的12个音符是: C C♯ D D♯ E F F♯ G G♯ A A♯ B 等效地(替换一些谐音等效物): C D♭ D E♭ E F G♭ G Ab A B♭ B 在每对相邻音符之间使用半音。 从音调开始,每个音阶必须依次有七个音符。否则,您可能在五角星的同一行中有两个音符,这会造成混淆。因此,在G#major / ionian中,您使用F ##而不是G;音乐家只会看看五角星在哪里,他们已经了解了每种音阶的偶然性。确实,在G#大调中,F ##在F ##的行中没有偶然出现,偶然出现在密钥签名中-但由于该密钥签名需要F的两个尖锐字符,因此通常将其标记为Ab …
10 code-golf  music 

2
使用用户指定的数字生成有效方程
这是基于我的一位数学老师在中学时期玩的一款游戏。他将在板上写下5个随机的一位数字,然后再写入一个随机的两位数字。我们将尝试创建一个方程,该方程使用所有5个一位数字来产生两位数。以下是一些带有解决方案的示例,可以更好地说明这一点: Input: Solution: 7 5 4 8 4 34 5*8-7+4/4 = 34 3 1 5 7 6 54 (7+3)*6-5-1 = 54 3 9 2 1 6 87 9*(2+1)*3+6 = 87 2 1 6 9 7 16 (9-7+6*1)*2 = 16 2 4 5 8 6 96 8*(5+6)+2*4 = 96 3 8 …

6
围栏密码
编写两个程序: -一个程序,读取一个字符串和一个密钥,并使用该密钥将该字符串编码为栅栏密码。-同样,编写一个用于反向功能的程序:使用钥匙解密铁栅栏。 对于那些不知道什么是栅栏密码的人,它基本上是一种以螺旋方式创建线性图案的方式写入纯文本的方法。示例-当使用键3将“ FOOBARBAZQUX”设置为栅栏时。 F . . . A . . . Z . . . . O . B . R . A . Q . X O . . . B . . . U 逐行读取上述螺旋,密文变为“ FAZOBRAQXOBU”。 阅读更多内容- 铁路围栏密码-维基百科。 欢迎使用任何语言的代码。 以字节为单位的最短答案将获胜。

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.