编程拼图和代码高尔夫

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

7
写出最长周期为500字节的迭代奎因
您的工作是创建最长周期的迭代quine,其中序列中每个程序的长度以500字节为界。 也就是说,如果重复以下步骤: 从您的初始程序开始 运行当前程序 返回步骤2 您最终将回到原始程序。循环中的程序数量就是您的分数,您正尝试将其最大化。 这些程序都不会引发任何错误。每个程序也必须以相同的方式运行(例如,没有不同的版本,实现,编译器选项,平台等)(编辑:是的,最后一个包括任何外部状态,例如伪随机数生成器的外部状态)语句。每次运行后都必须“重置”外部状态。如果您使用的是真正的随机数,则以最坏的情况为准。) 将此挑战与最长周期的迭代方法(除了100与500)不同的是,循环中的每个程序也必须等于或小于500字节。这意味着最长的周期为(256 ^ 501-1)/ 255或更小。当然,这是一个很大的数字,但是就计算所需的代码量而言,并不是那么大。因此,挑战是要尽可能多地使用(256 ^ 501-1)/ 255个可能性,而不是忙碌的海狸挑战。 程序不得访问其自己的源代码。但是,如果需要,可以允许使用空程序(只要遵循其他规则)。 由于手动检查程序很困难,因此您可以使用理论方法计算出分数。您必须在程序中包含分数和正确性的说明。如果您无法计算出分数,则可以使用循环中程序数量的下限作为实际分数。当您找到更好的下限时,或者如果您找到确切的实际分数,则可以更新此内容。 这是代码挑战,因此得分最高! 编辑:建议您用科学计数法写下您的分数,以使答案更容易比较。也可以使用其他形式的乐谱,这尤其好,尤其是如果它们更清楚地与您的程序相关联时。此外,鼓励读者编辑以前的答案以符合此要求。

7
无边桌
在此挑战中,您将把来自字母的字母放置在笛卡尔平面中,并将结果输出为文本。 您的输入将包含在具有3个参数的列表列表中: X坐标 Y坐标 串 怎么样? 我们知道笛卡尔平面包含2个轴(X,Y)(X,ÿ)(X, Y)和4个象限,其中坐标的符号为,,(- ,- )和(+ ,- )。例如(X,Y)(X,ÿ)(X,Y)(+ ,+ )(+,+)(+,+)(- ,+ )(-,+)(−,+)(- ,- )(-,-)(−,−)(+ ,− )(+,-)(+,−) 将以下3 x 3矩阵视为笛卡尔平面 (- 1 ,1 )(- 1 ,0 )(− 1 ,− 1 )(0 ,1 )(0 ,0 )(0 ,− 1 )(1 ,1 )(1 ,0 )(1 ,− 1 )(-1个,1个)(0,1个)(1个,1个)(-1个,0)(0,0)(1个,0)(-1个,-1个)(0,-1个)(1个,-1个)\begin{matrix} (-1,1) & …

30
一分为三!
给定一个字符串,您必须将其分成三个字符的组(_末尾填充)。 相关的,但仍然有所不同。 样本I / O: 'abcde' -> 'abc', 'de_' '1234' -> '123', '4__' '' -> [] or falsey value 'Three spree!' -> 'Thr', 'ee ', 'spr', 'ee!' 6 MB字串 这是一个代码高尔夫球,因此将赢得最少的字节! 编辑:最后,输出不受限制。

4
给定正数nnn,则忽略立体异构体;找到具有n个碳原子的烷烃数;或等效,未标记的树的与该数Ñ节点,使得每个节点具有度≤ 4nnnnnn≤4≤4\le 4。 这是OEIS序列A000602。 另请参阅:石蜡-罗塞塔代码 例 对于n=7n=7n = 7,答案是999,因为庚烷有9个异构体: 庚烷:H3C−CH2−CH2−CH2−CH2−CH2−CH3H3C−CH2−CH2−CH2−CH2−CH2−CH3\mathrm{H_3C-CH_2-CH_2-CH_2-CH_2-CH_2-CH_3} 2-甲基己烷:H3C−CH(CH3)−CH2−CH2−CH2−CH3H3C−CH(CH3)−CH2−CH2−CH2−CH3\mathrm{H_3C-CH(CH_3)-CH_2-CH_2-CH_2-CH_3} 3-甲基己烷:H3C−CH2−CH(CH3)−CH2−CH2−CH3H3C−CH2−CH(CH3)−CH2−CH2−CH3\mathrm{H_3C-CH_2-CH(CH_3)-CH_2-CH_2-CH_3} 2,2-二甲基戊烷:H3C−C(CH3)2−CH2−CH2−CH3H3C−C(CH3)2−CH2−CH2−CH3\mathrm{H_3C-C(CH_3)_2-CH_2-CH_2-CH_3} 2,3-二甲基戊烷:H3C−CH(CH3)−CH(CH3)−CH2−CH3H3C−CH(CH3)−CH(CH3)−CH2−CH3\mathrm{H_3C-CH(CH_3)-CH(CH_3)-CH_2-CH_3} 2,4-二甲基:H3C−CH(CH3)−CH2−CH(CH3)−CH3H3C−CH(CH3)−CH2−CH(CH3)−CH3\mathrm{H_3C-CH(CH_3)-CH_2-CH(CH_3)-CH_3} 3,3-二甲基戊烷:H3Ç - Ç ^ h2− C (C H3)2- Ç ^ h2- Ç ^ h3H3C-CH2-C(CH3)2-CH2-CH3\mathrm{H_3C-CH_2-C(CH_3)_2-CH_2-CH_3} 3-乙基戊烷:H3Ç - Ç ^ h2− C (C H2ç ^ h3)- c ^ H ^2- Ç ^ h3H3C-CH2-C(CH2CH3)-CH2-CH3\mathrm{H_3C-CH_2-C(CH_2CH_3)-CH_2-CH_3} 2,2,3-三甲基丁烷:H3C−C(CH3)2−CH(CH3)−CH3H3C−C(CH3)2−CH(CH3)−CH3\mathrm{H_3C-C(CH_3)_2-CH(CH_3)-CH_3} 注意3-甲基己烷和2,3-二甲基戊烷是手性的,但是在这里我们忽略立体异构体。 测试用例 您无需处理此案 …

1
优化一维键盘上的滑动
这是具有自定义评分系统的代码挑战,评分最低者获胜。 介绍 许多智能手机允许通过在2D虚拟键盘上滑动手指来输入文本。该技术通常与预测算法结合,该预测算法输出从最可能到最不可能排序的猜词列表。 在这个挑战中: 我们将在仅限于26个字母的子集的一维键盘上滑动。 不会有预测算法:我们希望每个单词都通过其“滑动顺序”来唯一标识。 我们希望对键盘进行优化,以使给定单词列表的移动总数最小化。 一维扫动 以下是按字母顺序排序的一维键盘,其中包含所有字母: ABCDEFGHIJKLMNOPQRSTUVWXYZ 注意:如果您是通过手机浏览的,则可能显示在多行上。请认为它是单行。 要在这样的键盘上输入单词“ GOLF ”,我们将: 开始于 G 向右滑动至 O 向左滑动 F 因为L位于O和之间F,所以我们只是继续刷卡而不停在那。 因此,此键盘上的“ GOLF ” 滑动顺序为GOF。 更普遍: 始终包含首字母和尾字母。 当且仅当紧随其后需要换向时,才包括其他字母。 重复字母必须与单个字母一样对待。例如,在上面的键盘上: “ LOOP ”将被编码为LP(不停止O) “ GOOFY ”将被编码为GOFY(O之所以包含在内,是因为那里的方向发生了变化-并不是因为它被加倍了) 键盘优化 让我们考虑以下单词列表:[' PROGRAMMING ',' PUZZLES ',' AND ',' CODE ',' GOLF ']。 我们需要16个不同的字母来键入这些单词,因此我们只需要一个16个字母的键盘即可。以下是-再次-按字典顺序排序: ACDEFGILMNOPRSUZ 使用此键盘,单词将以这种方式编码: …

7
令人满意的舍入
令人满意的舍入 您知道在上科学课时需要四舍五入到2个无花果,但是您的答案是5.2501...?您应该四舍五入到5.3,但这太不令人满意了!通过四舍五入到5.3,您将得到0.05的整数,与0.1(四舍五入到的位值)相比,这是一个很大的数目!因此,请以令人满意的方式帮助我。 要以令人满意的方式进行舍入,必须在遇到的第一个数字处舍入会产生相对较小的误差-小于舍入时可能出现的最大误差的一半。基本上,您需要在遇到0、1、8或9时四舍五入。如果永远不会发生,请按原样返回输入。不要四舍五入到前导零或一个-只是让人感到不满意。 输入值 表示非负十进制数字的字符串或浮点值。 输出量 可以将十进制数字以字符串或浮点格式令人满意地舍入。 例子 Input -> Output 0 -> 0 0.5 -> 0.5 0.19 -> 0 0.8 -> 1 5.64511 -> 5.645 18.913 -> 20 88.913 -> 100 36.38299 -> 36.4 621 -> 620 803.22 -> 1000 547.4726 -> 547.4726 这是一个代码挑战,所以最短的代码胜出!

5
多少步?
给定棋盘上的两个不同位置和棋子的类型,输出该棋子从一个位置移动到另一个位置所需的最小移动次数。 规则 给定的片段可以是King,Queen,Rook,Knight和Bishop。(此输入可以视为任意5个唯一字符) 这2个职位可以采用任何方便的格式, Example: a8 b8 c8 d8 ... h8 a7 b7 c7 d7 ... h7 ... ... a1 b1 c1 d1 ... h1 万一无法到达该部分,请输出除正整数以外的任何值。 例子 i/p ---- o/p King a1,a4 3 a1,h6 7 b3,h5 6 Queen a1,a4 1 a1,h6 2 b3,f7 1 Rook a1,a4 1 a1,h6 2 h2,c7 …
16 code-golf  chess 

23
查找列表是否为ABC三重
如果三个正整数A,B,C是互质的,则它们是ABC三元组,且A <B且满足以下关系:A + B = C 例子 : 1, 8, 9 是ABC三元组,因为它们是互质的,1 <8和1 + 8 = 9 6, 8, 14 不是因为他们不是互质素 7, 5, 12 不是因为7> 5 您可以查看此Frits Beukers 2005演示文稿,以获取有关ABC-三元组的更多详细信息。 输入输出 三个整数,十进制写成。可能是单独的值或列表。无论三个整数是否是ABC三元组,输出都必须为真实/虚假值。 注意:重要的是要遵守列表中的整数顺序,例如:1, 8, 9不被视为与同一列表9, 1, 8或任何其他组合。因此,第一个是ABC三元组,第二个不是。 因此,A是列表的第一个元素,B是第二个元素,C是第三个元素。 测试用例 以下每个列表应输出真实值 [1, 8, 9] [2, 3, 5] [2, 6436341, 6436343] [4, 121, …

1
最大化数独国王之旅
背景 数独是一个数字难题,如果将n × nñ×ñ n \times n 网格划分为大小为ññ n 框,则1个1个 1 到ññ n 每个数字应在每一行,每一列和每个框中精确地出现一次。 在国际象棋游戏中,国王可以轮流移动(最多)8个相邻单元中的任何一个。“相邻”在这里是指水平,垂直或对角线相邻。 在国王的巡演是骑士旅行的比喻; 这是一条(可能是开放的)路径,通过国际象棋王的动作,可以在给定的板上精确地访问每个单元一次。 任务 考虑一个6乘6的数独网格: 654 | 321 123 | 654 ----+---- 462 | 135 315 | 246 ----+---- 536 | 412 241 | 563 和国王之旅(从01到36): 01 02 03 | 34 35 36 31 32 33 …

16
最小加权RoD路径的权重
令其为正整数A的mby n矩形矩阵,其中和也是正整数。mn 我们对从左上单元格A到右下单元格的RoD(“右或下”)路径感兴趣;在RoD路径中,该路径的每个连续单元都是前一个单元向右的一个单元或下一个单元。 给定任何这样的RoD路径,我们可以取该路径中的单元格之和A。 例如,考虑4 x 3矩阵: [ [1, 2, 3, 4], [5, 1, 6, 7], [8, 2, 1, 1] ] 然后我们可以考虑RoD路径: 1 > 2 3 4 v 5 1 6 7 v 8 2 > 1 > 1 的总和为1+2+1+2+1+1=8。值得注意的是,该路径在该矩阵中从左上到右下的所有可能RoD路径的总和最小。 因此,提出的挑战是在您选择的语言中提供最短的功能/程序,以输出给定矩阵中从左上到右下的RoD路径可以具有的最小和A。 通常禁止的漏洞生效。您的输入可以采用任何合理的格式;您的输出必须是整数。 这是代码高尔夫球;答案按字节数计分。 测试用例 [ [5] ] -> 5 [ …

10
可能的最大和最小数目
任务 给定非负数数组,输出可以通过连接它们而形成的最大和最小数。 规则 输入,输出可以采用任何方便的格式。 该数组最多可以有1个十进制数。 例子 input:[22,33,44,55.55,33] output:4433332255.55,55.5522333344 input:[34,900,3,11,9] output:990034311,113349009 input:[99.93,9,3,39] output:939399.93,99.933399 input:[45.45,45,45,45] output:45454545.45,45.45454545 input:[12,21,34,43,45.1] output:4334211245.1,45.112213443 这是代码高尔夫球,因此最短的代码获胜。
16 code-golf 

9
这是大尺度(或同等学历)吗?
沙盒 主音阶(或爱奥尼亚音阶)是最常用的音阶之一,尤其是在西方音乐中。它是全音阶音阶之一。像许多音阶一样,它由七个音符组成:第八个音符以其两倍的频率复制第一个音符,因此它被称为同一音符的更高八度。 七个音符是: C,D,E,F,G,A,B和C(出于示例目的而重复) 大尺度是全音阶。将先前的音符序列作为主要音阶(实际上,它是音阶C Major)。大音阶音符之间的间隔顺序为: 整个,整个,一半,整个,整个,整个,一半 其中“整个”代表整个音调(图中红色的U形曲线),“半”代表半音(图中红色的虚线)。 在这种情况下,从C到D存在一个整体色调,从D到E存在一个整体色调,从E到F存在一个半色调,等等。 我们有2个成分会影响音符之间的音调距离。它们是尖锐符号(♯)和扁平符号(flat)。 尖锐符号(♯)为音符增加半音。例。从C到D,我们提到存在一个完整的音调,如果我们用C♯代替C,那么从C♯到D则存在一个半音。 扁平符号(♭)与夏普符号相反,它从音符中减去半音。示例:从D到E,我们提到存在一个完整的音调,如果我们使用Db代替D,则从Db到E则存在一个音调的一半。 默认情况下,随音符存在一个全音,除了E to F和B to C在短短半音。 请注意,在某些情况下,使用谐音音调可以创建与大音阶等效的音调。这样的一个例子是C#, D#, E#, F#, G#, A#, B#, C#其中E#和B#是等音但规模如下一个主标度的序列。 挑战 给定标度,如果是大标度或等效标度,则输出真实值,否则输出伪值。 规则 允许使用标准I / O方法 适用标准代码高尔夫球规则 您无需考虑8号音符。假设输入将仅包含7个注释 假设不存在双平(♭♭),双尖(♯♯)或自然符号(♮) 测试用例 C, D, E, F, G, A, B => true C#, D#, E#, F#, G#, A#, …

13
此字符串是回文(莫尔斯电码)吗?
挑战 灵感来自这个视频 如您所知,回文词是一个正反拼写相同的单词。“ PULP”一词不是回文,但是当翻译成摩尔斯电码(去掉字母之间的空格)后,“ PULP”变成“ .--...-.-...--”。这是回文。您的任务是编写一个程序或函数,该程序或函数接受一个字符串并返回该单词是否是国际摩尔斯电码中的回文。 A: .- B: -... C: -.-. D: -.. E: . F: ..-. G: --. H: .... I: .. J: .--- K: -.- L: .-.. M: -- N: -. O: --- P: .--. Q: --.- R: .-. S: ... T: - U: ..- V: ...- …

14
任意长度散列
考虑您有一个哈希函数 HH\mathcal{H},该哈希函数接收长度为2n2n2n字符串并返回长度为nnn字符串,并且具有耐碰撞的好特性,即很难找到具有相同哈希H的两个不同的字符串s≠s′s≠s′s \neq s'(s )= H(s ')。H(s)=H(s′)H(s)=H(s′)\mathcal{H}(s) = \mathcal{H}(s') 现在,您想构建一个新的哈希函数H′H′\mathcal{H'},该函数采用任意长度的字符串并将它们映射到长度为nnn字符串,同时仍具有抗碰撞性。 幸运的是,在1979年已经发布了一种现在称为Merkle–Damgård构造的方法,可以实现此目的。 这项挑战的任务是实现该算法,因此在逐步执行示例之前,我们将首先对Merkle–Damgård构造进行正式描述,该示例应表明该方法比以下方法更简单。它可能会首先出现。 给定一些n>0n>0n > 0整数,如上所述的哈希函数HH\mathcal{H}和任意长度的输入字符串sss,新的哈希函数H′H′\mathcal{H'}执行以下操作: 设置l=|s|l=|s| l = |s|,的长度sss和将sss拆分为长度为nnn的块,必要时用尾随零填充最后一个块。这产生m=⌈ln⌉m=⌈ln⌉m = \lceil \frac{l}{n} \rceil 许多块被标记c1,c2,…,cmc1,c2,…,cmc_1, c_2, \dots, c_m 。 添加一个前导和尾部块c0c0c_0和cm+1cm+1c_{m+1},其中c0c0c_0是由以下组成的串nnn零和cm+1cm+1c_{m+1}是nnn二进制,填充与领先零长度nnn。 现在,将HH\mathcal{H}迭代地应用于附加到先前结果r i - 1的当前块cicic_i上:r i = H(r i - 1 c i),其中r 0 = c 0。(查看下面的示例后,此步骤可能会更加清楚。)ri−1ri−1r_{i-1}ri=H(ri−1ci)ri=H(ri−1ci) r_i = \mathcal{H}(r_{i-1}c_i)r0=c0r0=c0r_0 = c_0 …

6
二进制栅栏
输入: n范围内的整数2 <= n <= 10 正整数列表 输出: 将整数转换为二进制表示形式(不带任何前导零),然后将它们全部连接在一起。 然后使用n围栏柱的数量确定构成“二进制围栏”的所有二进制子串。每个栅栏柱之间的空间(零)无关紧要(至少为1),但栅栏柱本身的宽度都应相等。 在这里,正则表达式的二进制子字符串应该与每个匹配n: n Regex to match to be a 'binary fence' Some examples 2 ^(1+)0+\1$ 101; 1100011; 1110111; 3 ^(1+)0+\10+\1$ 10101; 1000101; 110011011; 4 ^(1+)0+\10+\10+\1$ 1010101; 110110011011; 11110111100001111001111; etc. etc. You get the point 看n=4例子: 1010101 ^ ^ ^ ^ All …

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.