Questions tagged «code-golf»

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

6
比较能力。
通过构造一个函数f(a,b,c,d,e,f)比较两个数字N 1 = a b c,N 2 = d e f: 如果N 1 > N 2返回1 如果N 1 <N 2返回-1 注意:不需要为N 1和N 2之间的任何其他关系返回任何值。例如,当它们相等时或当它们的关系未定义(复数)时。 其他限制: 所有数字都是整数 a,b,c,d,e,f可以为正也可以为负,但不能为零。 | a |,| d | <1000 | b |,| c |,| e |,| f | <10 10 运行时间少于几秒钟 例子: f(100,100,100,50,100,100) = 1 f(-100,100,100,50,100,100) = …
13 code-golf 

6
计算格雷厄姆数的最后一位数字
格雷厄姆的数字以7结尾。从理论上讲,这是一个庞大的数字,需要存储的信息比宇宙本身的大小还要多。但是,可以计算格雷厄姆数字的最后几位数。 最后几位数字是: 02425950695064738395657479136519351798334535362521 43003540126026771622672160419810652263169355188780 38814483140652526168785095552646051071172000997092 91249544378887496062882911725063001303622934916080 25459461494578871427832350829242102091825896753560 43086993801689249889268099510169055919951195027887 17830837018340236474548882222161573228010132974509 27344594504343300901096928025352751833289884461508 94042482650181938515625357963996189939679054966380 03222348723967018485186439059104575627262464195387 您的程序可能不包含这些(或相似的数字),但必须计算它们。它必须计算200位数或更多。 输出到标准输出。在适当的硬件上,运行时间最长为2分钟。最短的程序获胜。
13 code-golf  number 

5
以多种方式完善权力?
挑战 您的任务是编写一个给定正整数N的程序或函数,该程序或函数查找所有小于或等于N的正整数,这些正整数可以以多种方式表示为完美幂。 定义 完美的功率被定义为一个数我发现立方公尺ķ,其中: m和i是正整数 m!= k 测试用例 输入->输出 1000-> 16,64,81,256,512,625,729 56-> 16 999-> 16,64,81,256,512,625,729 81-> 16,64,81 1500-> 16,64,81,256,512,625,729,1024,1296 请提供一个可读的,注释的版本。


10
天气预报
编写最短的程序来预测未来7天的天气 输入(来自stdin)是工作日和季节 (到标准输出)的输出是工作日的七行,温度为摄氏度 工作日从输入的工作日开始 温度是随机数字,其范围取决于季节 弹簧10-30度 夏季20至40度 秋季5-25度(秋季是秋季的代名词) 冬季-5-15度 样本输入 Thursday Winter 样本输出 星期四-1 星期五3 星期六8 星期日7 星期一10 星期二10 星期三-1 每次使用相同的输入运行您的程序时,其输出都不得相同
13 code-golf  random 

9
教堂减法
教堂减法 Lambda演算一直是我的迷恋,并且将函数相互传递的新出现的行为令人愉快地复杂。教堂数字是自然数的表示,该自然数是由函数的重复应用构成的(通常是常数的一元加法)。例如,数字零返回x并“忽略”输入函数,一个为f(x),两个为f(f(x)),依此类推: ident = lambda x: x zero = lambda f: ident succ = lambda n: lambda f: lambda x: f(n(f)(x)) one = succ(zero) add1 = lambda x: x + 1 to_int = lambda f: f(add1)(0) print(to_int(one)) >>> 1 由此我们可以很容易地看到,通过将第一个函数应用于x然后将第二个函数应用于x可以完成加法运算: add = lambda m: lambda n: lambda f: lambda x: …

30
确定澳大利亚足球比赛的获胜者
在澳大利亚足球中,进球价值6分,而落后价值1分。分数可能包括进球数和落后数以及总得分。给定两个不同球队的进球数和落后数目,确定哪个球队赢了比赛。 以四个整数g1, b1, g2, b2作为输入,并输出两个不同的值来表示输入的第一支球队还是第二支球队获胜。输入格式是灵活的,但是输入顺序必须使它显而易见,哪个团队在第一位。例如,g1, g2, b1, b2将被允许​​,但b1, g2, g1, b2不允许。 测试用例 测试用例将true用于第一队的获胜和false第二队的获胜。输入采用格式(g1,b1),(g2,b2)。 (1,0),(0,1) true (2,0),(0,11) true (10,8),(11,1) true (0,0),(1,0) false (100,100),(117,0) false (7,7),(5,12) true (2,0),(0,13) false 作为一个例子,对于输入(10,8),(11,1),球队1打入10个球和8个屁股,共计10 * 6 + 8 * 1 = 6810∗6+8∗1=6810*6+8*1=68点,而队2得分11 * 6 + 1 * 1 = 6711∗6+1∗1=6711*6+1*1=67点,这样球队1胜。 没有输入将成为绘图-程序在绘图输入上的行为无关紧要。

28
最短的十六进制转储程序
挑战 创建一个控制台程序以显示文件的每个字节。 获奖 由于这是代码高尔夫球,因此最少的字节获胜。 规则 程序必须是控制台应用程序,这意味着它将从某种命令行解释器运行; 每个字节必须为大写十六进制,并以空格分隔,并且必须为2位数字。(如果有1位数字,则将数字0放在前面) 必须使用IO或其他方式读取文件,并且不进行硬编码; 文件路径必须指定为命令行参数或用户提示符(如STDIN); 请没有漏洞 ; 例 test.txt(以LF结尾) Hello World! $ ./hexdump.exe test.txt 48 65 6C 6C 6F 20 57 6F 72 6C 64 21 0A
13 code-golf 

3
实施强大的Darboux功能
根据Wikipedia的说法,强大的Darboux功能是 每个(非空)打开间隔的图像都是整个实线 换句话说,如果给定3个任意实数a,b和y,则函数fff强烈是Darboux ,总是有可能在a和b之间(相异)找到一个x,使得f (x )= y。aaabbbyyyxxxaaabbbf(x)=yf(x)=yf(x) = y 出于这一挑战的目的,我们将强烈考虑使用Darboux函数代替理性。 您面临的挑战是编写一个程序或函数以: 给出每个有理数输入的有理数作为输出, 对于给定的输入,总是给出相同的输出,并且 具有强烈的Darboux属性。 输入和输出可以是以下之一: 一种任意精度的数字类型,如果您的语言有一种(或具有一种用于该语言的库,例如GMP)。 数字的字符串表示形式,您可能会假设该数字将始终包含小数点,并且在每一侧至少包含一位数字。它可以是任何碱b≥2b≥2b \geq 2,但输入和输出必须是相同的基。您可以使用任何字符集作为数字和小数点(但同样,输入和输出之间的字符必须一致)。 输入将始终具有终止基数bbb扩展。至于输出,根据您对功能的选择,理论上它的基数bbb可能会是不终止的,您可以选择以下任意一种: 永远输出数字。 接受一个额外的整数作为输入,并输出至少那个位数。 输出至少与输入中的数字一样多的数字(可能包含尾随零)。 注意,通过这一挑战的性质,约定数可假定为是通过标准编号类型可表示没有不适用,除了在上面的选项2中描述的第二输入端。 为避免仅在非终止理性上定义的函数出现漏洞,您的提交必须能够在实践中任意产生接近所需值的输出。形式上,给定有理数aaa,bbb,yyy和εε\varepsilon,必须有一个以您选择的底数终止的有理数xxx,使得a&lt;x&lt;ba&lt;x&lt;ba<x<b和|f(x)−y|&lt;ε|f(x)−y|&lt;ε|f(x)-y|<\varepsilon。 为了给您一些想法,以下是Conway base 13函数的说明: 将xxx转换为以13为底并删除小数点。 如果结果的格式为[x]A[y]C[z]13[x]A[y]C[z]13[x]A[y]C[z]_{13},其中[y][y][y]和[z][z][z]仅由0到9的数字组成,则f(x)=[y].[z]f(x)=[y].[z]f(x) = [y].[z]。 如果结果的格式为[x]B[y]C[z]13[x]B[y]C[z]13[x]B[y]C[z]_{13},其中[y][y][y]和[z][z][z]仅由0到9的数字组成,则f(x)=−[y].[z]f(x)=−[y].[z]f(x) = -[y].[z]。 否则,f(x)=0f(x)=0f(x) = 0。 此功能强烈地是Darboux。例如,假设我们要在123.456 13和123.457 13之间找到一些xxx,以使f (x )= 7.89。以13为基的值123.456 A 7 C 89 13将满足此要求。123.45613123.45613123.456_{13}123.45713123.45713123.457_{13}f(x)=7.89f(x)=7.89f(x) = …
13 code-golf  number 

2
谁能逃脱一元游戏?
Nonary Game是一款虚构的游戏,使用同名的电子游戏三部曲进行。您的目标是找到尽可能少的代码字节(最多)可以让给定游戏逃脱的玩家人数。 游戏规则 有9位玩家,编号从1到9。 所有玩家都从同一房间开始。 门的数量不限,每个门的编号为1到9。门号可能重复或丢失。 门是房间之间的单向连接。每个门只能使用一次。 只有3至5名球员的团体才能进入。 如果一组人的模数之和为9与门的模数为9相匹配,则该组只能穿过门。 任何经过9门的玩家都会逃脱(获胜)。 例子 ┌───┬───┬───┐ │ 6 4 9 │ &lt; │ | | │ 3 5 9 └───┴───┴───┘ &lt;代表起点。所有玩家都从这里开始。 在这种情况下,每个人都可以逃脱。有多种方法可以实现此目的,其中一种是: [1、2、3、4、5]经过6号门((1 + 2 + 3 + 4 + 5)%9 = 6),而[6、7、8、9]通过3号门((6 + 7 + 8 + 9)%9 = 3)。大家在第二个房间见面。 [1、2、3、7]穿过门4,而[4、5、6、8、9]穿过门5。 [1、2、3、4、8]穿过9个门之一,[5、6、7、9]穿过另一个门。 ┌───┬───┐ …
13 code-golf  game 

7
找出字图的直径
介绍 一个流行的单词拼图是通过一系列步骤将一个单词转换为另一个单词,这些步骤仅替换一个字母,并且始终生成有效的单词。例如,可以通过五个步骤将BAG转换为DOG: 袋-&gt; BAT-&gt;猫-&gt; COT-&gt; COG-&gt;狗 在这种情况下,路径也较短。例如: 袋-&gt;沼泽-&gt;狗 如果绘制了一个图,其顶点被单词标记,则任何一对单词之间的边距相差一个字母,则从“ BAG”到“ DOG”的最短路径将由两个边组成。 挑战 您将要编写一个程序,该程序接收所有长度相同的单词的“字典”作为输入,这些单词代表所有可能出现的单词,这些单词可以沿路径显示为台阶。它应至少输出一个“最长最短路径”,即两个单词之间的路径: 不超过这两个词之间的任何其他路径; 至少与列表中任何其他单词对之间的最短路径一样长。 在上述图表的上下文中,这种路径的长度就是图表的直径。 在简并的情况下,所有输入单词都不能转换成其他任何单词,输出至少一个长度为零的路径,即单个单词。 例子 输入[“ bag”,“ bat”,“ cat”,“ cot”,“ dot”,“ dog”]应产生一条以该顺序(或相反顺序)遍历所有六个单词的路径,因为从“这个字典中“ bag”到“ dog”是最长的,五个步骤。 输入[“ bag”,“ bat”,“ bot”,“ cat”,“ cot”,“ dot”,“ dog”]应产生路径“ bag,bat,bot,dot,dog”和/或其路径逆转。 输入[“ code”,“ golf”,“ male”,“ buzz”,“ mole”,“ role”,“ mold”,“ cold”,“ gold”,“ mode”]应产生“ code”之间的路径和“高尔夫”。 输入[“ one”,“ …
13 code-golf 

7
打印所有“带引号”字符的总长度
规则 在这个挑战中,我将重新定义“引号”的定义。 引号(AKA 引号)是在各种书写系统中成对使用的任何相同字符,用于引出直接语音,引号或短语。该对包括一个引号和一个引号,它们是相同的字符(区分大小写)。 如果有报价对彼此重叠, 如果一对嵌套,则两个对仍然有效。 如果一对未嵌套,则第一个起始对保持有效。另一个不再被视为一对。 计算带引号的字符(一对引号的长度)时, 引号本身不计算在内。 每对的长度独立计算。重叠不会影响另一个。 目标 您的目标是打印所有有效报价的总长度。这是代码高尔夫球,因此字节最少的代码获胜。 例子 Legend: &lt;foo&gt;: Valid quotes ^ : Cannot be paired character Input : ABCDDCBA `A` (6): &lt;BCDDCB&gt; `B` (4): &lt;CDDC&gt; `C` (2): &lt;DD&gt; `D` (0): &lt;&gt; Output : 12 Input : ABCDABCD `A` (3): &lt;BCD&gt; `B` (0): ^ …

29
集合的第N个子集
任务 鉴于设置 小号= [ 1 ,2 ,3 ,4 ,5 ,6 ,7 ,8 ]S=[1,2,3,4,5,6,7,8]S = \left[{1,2,3,4,5,6,7,8}\right] 和一个整数 0 ≤ Ñ&lt; 2| 小号|0≤N&lt;2|S|0 \leq N < 2^{|S|} 找到第N个子集。 输入输出 N在stdin上以无符号整数形式给出。您必须打印适合您的语言格式的第N子集(这可能包括[1,2,3],{1,2,3},[1, 2, 3],1 2 3,1,2,3等,只要它是人类可读的文本格式)。 关于子集的一点 在基数二中,子集和数字之间存在关系。每个数字 指定该集合的第i个元素是否在子集中。例如,00000000是空集,而10000001是包含(最后一个元素和第一个元素)的子集。通过将数字转换为基数2得到第N个子集,然后该子集包含所有元素。因此,第三个子集(3 = 00000011)包含。最右边的数字是数字#0。可以打印。该集不必排序。d一世did_{i} d i &gt; 0[1,8]d一世&gt; 0di&gt;0d_{i} > 0[1,2][2,1] 附录: 是的,集合固定为1..8。该集合不是输入的一部分。输入只是ñ。 是的,您可以使用其他输入形式。 所有N的所有预期输出:https : //tio.run/##SyotykktLixN/f/fyNS02qIoP8soJd1CwSAg2kY32LPWPaoqs7jg/38A
13 code-golf 

13
QBasic打高尔夫球的技巧
您在QBasic中打高尔夫球有哪些一般提示?我正在寻找可以应用于编码高尔夫球问题的想法,这些想法至少在某些方面是QBasic特有的(例如,“删除评论”不是答案)。 还欢迎提供有关QB64仿真器的提示。它具有Microsoft QBasic所没有的一些额外功能。
13 code-golf  tips  basic 

7
测试允许序列
内容提要:测试整数的输入序列是否为“允许的”,这意味着它不涵盖任何模数的所有残基类别。 什么是“允许”序列? 给定一个整数m≥2,模m的残基类别就是公共差m的m个可能的算术级数。例如,当m = 4时,模4的4个残基类别为 ..., -8, -4, 0, 4, 8, 12, ... ..., -7, -3, 1, 5, 9, 13, ... ..., -6, -2, 2, 6, 10, 14, ... ..., -5, -1, 3, 7, 11, 15, ... 第k个残基类由所有整数组成,所有整数除以m等于k。(只要为负整数正确定义“余数”) 如果整数a1,a2,...,ak的序列未能与至少一个残基类别相交,则该序列可取m模。例如,{0,1,2,3}和{-4,5,14,23} 不允许以 4 为模,但是{0,1,2,4}和{0,1,5,9}和{0,1,2,-3} 是模4的允许值。此外,{0,1,2,3,4}是模4的不允许值,而{0,1,2} 是模4的可接受值。 最后,如果每个整数m≥2都可以模m取整数,则整数序列只是可允许的。 挑战 编写一个程序或函数,该程序或函数将整数序列作为输入,如果该序列是允许的,则返回一个(一致的)Truthy值,如果该序列不可接受的,则返回一个(一致的)Falsy值。 整数的输入序列可以采用任何合理的格式。您可以假设输入序列至少包含两个整数。(虽然可能没有帮助,但是您也可以假设输入整数是不同的,尽管这可能无济于事。)您必须能够处理正整数和负整数(和0)。 通常的代码高尔夫评分:最短的答案(以字节为单位)获胜。 样品输入 …

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.