编程拼图和代码高尔夫

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

7
这个聊天机器人是谁?
目的: 我们的任务是创建一个聊天机器人,您可以在其中与您讨论最深刻的想法。使用从您的输入中学习的AI创建聊天机器人。您的机器人应激发您释放最黑暗的内在真理。 灵感: http://en.wikipedia.org/wiki/Chatterbot http://io9.com/5901579/10-tricks-that-c​​hatbots-use-to-make-you-believe-theyre-human 规则: 您可以使用任何编程语言。 您的程序除了用户输入外,不应从文件名,网络或其他任何内容中获取任何输入。 机器人没有预设的词汇表,它应该从用户输入中了解所有知识,并且讨论可以是任何事情。 强制标准: 这不是Code-golf,但请保持简单,源代码的大小应与编程语言相对应,这意味着:GolfScript = short,BF = long,other =使用常识。使用示例代码作为参考,您的代码可能是该大小的两倍,但最好还是更好。 您的程序无法在前1000个句子中开始滞后(延迟5-10秒)。 合理的讨论应在20到30个句子之内完成。 从逻辑上说,您的算法应与示例代码尽可能不同。 可选的奖金评审标准: 更好的机器人学习算法,更好的程序。 没有网球比赛,即谈话没有严格遵循:“用户>计算机>用户”循环转弯。 模仿行为较少,机器人的行为不同于用户的行为,从而将对机器人态度的感知与用户的态度分开了。 感受不同的变化心情,例如:健谈,沉默寡言,乐观,悲观。 一种保存和加载“大脑”的方法,以便您可以在第二天继续与机器人进行讨论。 C ++中的示例代码仅供参考: #include <iostream> #include <vector> #include <string> #include <sstream> #include <algorithm> #include <iterator> using namespace std; vector<string> words; vector<int> weight1; vector<int> weight2; int oldbw; …

30
摇滚全天候
使用尽可能少的Unicode字符,打印以下内容(144个字符): 1, 2, 3 o'clock, 4 o'clock rock, 5, 6, 7 o'clock, 8 o'clock rock, 9, 10, 11 o'clock, 12 o'clock rock, We're gonna rock around the clock tonight. 除之外,您不得在代码中使用任何数字1。

30
回答生命,宇宙和一切
任务 给定一个String作为输入,您的任务是42 仅在输入String恰好符合以下条件时才输出: abbcccddddeeeeeffffffggggggghhhhhhhhiiiiiiiiijjjjjjjjjjkkkkkkkkkkkllllllllllllmmmmmmmmmmmmmnnnnnnnnnnnnnnoooooooooooooooppppppppppppppppqqqqqqqqqqqqqqqqqrrrrrrrrrrrrrrrrrrsssssssssssssssssssttttttttttttttttttttuuuuuuuuuuuuuuuuuuuuuvvvvvvvvvvvvvvvvvvvvvvwwwwwwwwwwwwwwwwwwwwwwwxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyzzzzzzzzzzzzzzzzzzzzzzzzzz 如果输入不等于上述字符串,则它可能会输出任何其他值,产生错误或完全不输出。 获胜标准 这是代码高尔夫球,因此以字节为单位的最短代码胜出!
46 code-golf  string 

12
麻省理工学院的教授可以读懂思想!
该任务摘自Devadas教授在麻省理工学院的一次演讲,名为“ 您可以读懂思想”。有关此技巧的详细说明,请参见链接的视频或本文档。我将尝试用更简单的术语进行解释。 事实证明,这是1930年代发明的,被称为“惠誉·切尼的五张牌把戏”。 诀窍如下: 从一副纸牌中选择五张随机纸牌。观众和您的助手可以看到他们,但您却没有。 您的助手(您与之练习过的助手)将选择其中的四张卡片,并按特定顺序显示给您。请注意,隐藏卡不是从5张卡中随机选择的。助手选择一张将使技巧起作用的卡。 您将根据从四张卡中收集到的信息推断出第五张卡是什么。 怎么样? 请记住以下两点: 选择5张随机卡片时,可以确保至少有两张卡片具有相同的花色1。 下图显示了一个等级为2的圆。由于是圆形,因此可以计数:J,Q,K,A,2、3(即模数)。您可以确保隐藏的卡与第一张卡的等级不同,因为它们的西装相同(如下所述)。总是可以选择第一张纸牌和隐藏的纸牌,以使隐藏的纸牌比第一张纸牌高1至6级(按圆圈数时)。如果第一张卡为1,则隐藏的卡将为2、3、4、5、6或7。如果第一张卡是J,那么隐藏的卡将是Q,K,A,2,3或4,依此类推。 算法: 第一张卡:此卡与隐藏卡的西装相同。找出隐藏卡的等级时,该卡也将用作参考点。 第二张,第三张和第四张卡解码范围为1 ... 6的值。我们将这三个卡称为S,M,L(最小卡,中间卡,最大卡)。值将按以下方式编码(字典顺序): S M L -> 1 S L M -> 2 M S L -> 3 M L S -> 4 L S M -> 5 L M S -> 6 因此,如果第一张牌的等级为5,而其余​​三张牌的等级为4 Q 7(它们被订购SLM),那么最后一张牌的等级为5 + …

30
会说话吗?
在一个较早的挑战中,我要求打高尔夫球的人制作出可以复制字符串中每个字符的字符串。例如: TThhiiss iiss ddoouubbllee ssppeeaakk!! 挑战仅在于检测某些文本是否符合双重发音字符串的定义。 偶数个字符。 分成两对时,每对都包含两个相同的字符。 挑战 这是代码高尔夫球,只需几个字节即可完成。 使用您选择的任何语言。 请提供在线翻译的链接。 该代码将接受一些文本。 为简单起见,输入将仅包含可打印的ASCII字符 它将返回有关输入是否为双向通话的指示。它可能是: 一个布尔值 字符串(“ true”,“ false”,“ yes”,“ no”等) 整数0或1 测试用例: aba-错误 abba-错误 aabb-是的 aaabb-错误 tthhiiss-是的 ttthhhiiisss-错误

30
乘法持久性
乘法持久性 将一个数字中的所有数字相乘 重复直到您剩下一位数 正如Numberphile解释的那样: Numberphile “ 277777788888899有什么特别之处?” Numberphile “乘法持久性(额外镜头)” 例 277777788888899→2x7x7x7x7x7x7x8x8x8x8x8x8x9x9 = 4996238671872 4996238671872→4x9x9x6x2x3x8x6x7x1x8x7x2 = 438939648 438939648→4x3x8x9x3x9x6x4x8 = 4478976 4478976→4x4x7x8x9x7x6 = 338688 338688→3x3x8x6x8x8 = 27648 27648→2x7x6x4x8 = 2688 2688→2x6x8x8 = 768 768→7x6x8 = 336 336→3x3x6 = 54 54→5x4 = 20 20→2x0 = 0 顺便说一下,这是当前记录:最小的数字和最大的步数。 高尔夫球 该程序以任何整数作为输入,然后从输入本身开始输出每个步骤的结果,直到我们碰到一位数字为止。对于277777788888899,输出应为 277777788888899 4996238671872 438939648 4478976 …

30
史蒂夫·鲍尔默的奇案
史蒂夫·鲍尔默(Steve Ballmer)是微软的前首席执行官,在最近的一篇文章中,他声称他“仍然不知道自己在移动方面做错了什么”。 正如CodeProject的新闻通讯所指出的那样,“该文章的标题可以在很多地方结束并且仍然准确”。 在没有输入的情况下,输出以下内容: Steve Ballmer still does not know. Steve Ballmer still does not know what he did. Steve Ballmer still does not know what he did wrong. Steve Ballmer still does not know what he did wrong with mobile. 该输出必须完全如图所示,并且必须是程序的唯一输出。您可以包括一个尾随换行符。 这是代码高尔夫球,因此每种语言中的最少字节数获胜

30
制作紧急走廊
在某些国家/地区,有关于如何在每个方向上有多个车道的街道上形成紧急通道的建议或法律。(在下文中,我们仅考虑沿行进方向行驶的车道。)以下是在德国适用的规则: 如果只有一条车道,则每个人都应向右行驶,以使救援车辆可以从左侧驶过。 如果有两个或更多车道,则最左侧车道上的汽车应向左行驶,其他所有人应向右行驶。 挑战 给定N>0常规车道的数量,使用一串N+1ASCII字符形成紧急通道时,输出车道的布局。您可以使用从ASCII码33到的任意两个字符126,一个代表紧急通道,一个代表汽车。允许尾随或前导空格,换行符等。 例子 在这里,我们E用于紧急通道和C汽车。 N Output 1 EC 2 CEC 3 CECC 4 CECCC 5 CECCCC 6 CECCCCC etc

3
密码锁
场景 经过一整天的辛苦工作,在办公室里浏览并浏览了stackexchange.com之后,我终于在16:58走出家门,已经疲倦了。因为我仍然只是一名实习生,所以我目前的交通方式是骑自行车。我前往值得信赖的Peugeot Reynolds 501,但是在我不能驶向它之前,我需要将其解锁。该锁是通过框架和前轮的标准四位数密码锁(0-9)。当我尝试保持清醒时,我将手向上拉以进入组合。 挑战 因为我的手指很疲劳,所以我想用最少的动作将锁调到正确的位置。一移动定义为旋转一个位置(36度),例如,从5737到移动一5738。但是,我能够同时抓取最多三个连续的环,并将它们旋转为一个,这仅算作一个动作。例如,从到到仅有一个移动。从到移动不是一个动作,因为数字1,2和4向同一方向移动,但独立于数字3。57376837562657376838 因此,对于给定的组合,我可以在自行车锁上看到(任何4位整数),使锁解锁的最低移动量是多少,是的,我可以随时朝任一方向旋转。我的意思是,我可以在一个方向上转动一些数字,而在另一个方向上转动其他数字:对于每次解锁,并非我的所有动作都是顺时针或顺时针方向。 因为我很懒,所以我的解锁码是0000。 这是我无法打扰的代码编写工作,因此以字节数为单位的最短程序获胜。 输入来自stdin,您的代码应输出每次移动后每一步都能看到的组合,包括末尾的0000。每个组合输出都应以空格/换行符/逗号/句号/&符号分隔。 例子 Input: 1210 0100 0000 Input: 9871 9870 0980 0090 0000 Input: 5555 4445&3335&2225&1115&0005&0006&0007&0008&0009&0000 Input: 1234 0124 0013 0002 0001 0000 我尝试将其发布在http://bicycles.stackexchange.com上,但他们不喜欢它... 免责声明:第一次打高尔夫球,所以任何损坏的信息/遗失信息都请通知我!我也手动完成了所有示例,因此可能会有涉及较少动作的解决方案! 编辑:对于具有多个具有相等移动量(实际上是全部)的解决方案路径的答案,没有首选的解决方案。

13
高尔夫我的莎士比亚报价参考
在为莎士比亚撰写论文时,我意识到我需要将引用引用缩短到更易于管理的长度。我以前一直在写这个: (Act 1, Scene 2, Lines 345-346) 但是现在我被告知要这样写它们: (I.ii.345-6) 显然,我需要一些打高尔夫的代码才能对莎士比亚的报价引用有所了解。 任务 编写一个程序或函数,给定在模板1或2之后输入字符串的情况,分别打印或返回在模板3或4之后返回的字符串。您只需要支持Act 1至5和Scene 1至9。 范本 范本1 (Act x, Scene y, Lines a-b) 您可以假设x从不超过5,y从不超过9,a并且b始终是正整数,不超过您语言的最大正标准整数值,并且a始终排他地小于b。 范本2 (Act x, Scene y, Line a) 与模板1的条件相同,但有关的信息除外b。 范本3 (x.y.a-b) 其中x是大写罗马数字,y是小写罗马数字,a并且b是数字,并且b被缩短为仅小于与相等的第一个不同有效位的数字a。 范本4 (x.y.a) 与模板3的条件相同,但不包含有关的信息b。 测试用例 让它f(s)成为任务中定义的功能。""表示字符串值。 >>> f("(Act 1, Scene 2, Lines 345-346)") "(I.ii.345-6)" >>> f("(Act 3, …

30
打网球吧
我突然真的很想打网球,可惜我没有球场! 惊喜!这是您进来的地方。 您必须为我打印一个网球场,但是由于机密原因,您必须以最少的字节数进行打印。 网球场 --------- | | --------- | | | xxxxxxxxx | | | --------- | | --------- 这是代码高尔夫球,因此以字节为单位的最短代码胜出!

23
手性难题
如果没有任何旋转量,形状看起来像镜像,则该形状是手性的。在这个难题中,我们将编写手性计算机程序。 对于这个难题,我们将程序视为字符的矩形矩阵。因此,应对这一挑战的所有解决方案都必须是矩形的(也就是说,所有线的长度必须相同)。我们可以按四分之一圈的增量旋转这些程序。例如程序 The quickish fish lept deftly rightwards 当顺时针旋转四分之一转时 T h r e i glq heu tpi wtc a k rdi des sfh t lf yi s h 我们也可以反映这些程序。这是在垂直轴上反映的同一程序: hsif hsikciuq ehT yltfed tpel sdrawthgir 手征性程序是这样的程序,当它旋转任意次数时,总是输出“ left”。但是,当反射时,right无论旋转多少次,该程序都会输出“ ”。 您的任务是编写一个尽可能少的字节的手性程序。 附加规则 输出不区分大小写,但应保持一致。(例如,您可以输出“ LEFT”和“ rIgHt”,但此大小写在旋转下必须保持一致) 行将在换行符或换行符和换行符之间进行拆分。 您的程序必须是矩形,可以用空格或注释填充它,但每一行的长度必须相同。 如果需要,您可以选择在所有程序上使用尾随换行符(或换行符和换行符)。

26
程序拼图和代码____
输入项 一个非空的编码字符串,由可打印的ASCII字符组成(范围为32-126),其中一些丢失的字母已替换为_。 输出量 长度相同的解码字符串,所有字母均小写,包括丢失的字母。 怎么样? 编辑:正如@Deusovi在评论中提到的,这是Bacon密码的一种变体。 收集原始字符串中的所有字母,然后将它们分组为5。不适合全部5个字符的其他字母将被忽略。 将每个组转换为二进制:小写= 0,大写= 1。这导致一个整数列表。 使用此列表中的每个值N,按出现顺序_将原始字符串中的每个值替换为字母的第N个字母(0索引)。 例: prOGraMMIng PuZZleS & cOde ____ prOGr --> 00110 --> 6 --> 7th letter = 'g' aMMIn --> 01110 --> 14 --> 15th letter = 'o' gPuZZ --> 01011 --> 11 --> 12th letter = 'l' leScO --> 00101 …

30
文字冰柱
由于Stack Exchange的技术限制,标题显示不正确。此挑战的正确标题是 做一个 Word Icicle! Word Icicle Word cicle ord cicle ord icle ord i le or i le or i l or l or r 当今的挑战是使输入词无法产生冰柱。给定一个完全可打印的ASCII字符串,以及至少2个非空格字符,请执行以下步骤: 打印字符串的当前状态。 用空格替换词法上最小的字符(空格除外)。如果有平局,请替换最左边的字符。 在连续的行上重复直到该字符串仅包含1个非空格字符。 这产生了输入字符串看起来像融化的效果。 I'm Melting!!! I'm Melting !! I'm Melting ! I'm Melting I m Melting m Melting m elting m lting …

19
通过复制初始代码来创建大小增加的正方形
您的任务是编写一个长度均匀的程序,该程序打印一个ASCII艺术字型方块(如下所述),每次将原始源代码粘贴到当前代码中间时,其边长就会增加1个单位。 我很难很好地定义此任务,因此,我举一个例子: 假设您的初始代码是CODE并且已打印: 0 然后,CODE在中间插入:您的代码将变成COCODEDE并且应该打印: 00 00 CODE在中间重新插入:您的代码将变成COCOCODEDEDE 并且应该打印: 000 000 000 等等。从理论上讲,您的答案在经过任意多次迭代后都应该可以使用,但是我知道,由于语言性能的限制,它是否不能合理地超过某个阈值。 一些规则: 您可以使用任何可打印的ASCII(32-127)作为用于正方形的字符。您的选择必须是恒定的(每次迭代都应使用相同的字符)。 初始输出平方必须具有边长1。 ascii-art正方形定义为具有N行的字符串(由N-1个换行符/换行符分隔),并且每行包含N个所选字符的副本。 除尾随换行符外,您的输出不允许包含任何多余的空格。 您可以将默认值用于输入和输出(允许使用程序或功能,但不允许使用代码段)。 代码的中间部分定义为可以将源代码分为两部分,以使两者相等的点。 您的答案将按照原始程序的长度(以字节为单位)进行评分。最低字节数获胜。如果出现平局,则较早提交的答案将获胜。 您可以使用此程序来应用插入,而无需手动进行。

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.