Questions tagged «code-golf»

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

30
随机选择plinko样式的字符
让我们看看您选择的语言在选择性随机方面的表现如何。 给定4个字符,A,B,C,和D,或4个字符的字符串ABCD 作为输入,具有以下概率的字符输出之一: A 应该有1/8(12.5%)的机会被选中 B 应该有3/8(37.5%)的机会被选中 C 应该有2/8(25%)的机会被选中 D 应该有2/8(25%)的机会被选中 这与以下Plinko机器布局一致: ^ ^ ^ ^ ^ ^ A B \ / ^ C D 您的答案必须真正地尝试遵守所述的概率。正确解释您的答案中的概率是如何计算的(以及为什么它们尊重规范,而忽略伪随机和大数问题)就足够了。 计分 这是代码高尔夫球,因此每种语言中最少的字节会获胜!

30
最后一个星期一
10月31日,星期一,是万圣节。这让我开始思考-我想知道该月的最后一天也是星期一吗? 输入项 任何表示年份的方便格式的正整数,10000 > y > 0。 如果需要,可以用零填充输入(例如,0025年份25)。 输出量 该年的月份列表,其中月份的最后一天是星期一。 只要对读者而言,这可以是月份名称(例如January, March, October),短名称(Jan, Mar, Oct)或数字(1, 3, 10),单独的行,列表或定界符等。 输出格式必须一致: 对于所有年份的输入(这意味着,您不能输出某些输入的月份名称,而其他输出的月份编号) 以及每个输出是一致的(意思是,你不能输出1对于January在相同的输出Jul为July) 基本上,选择一种格式并坚持下去。 规则 假设输入/输出为公历,甚至到y = 1。 properly年必须适当地考虑(提醒一下:每年除以4的年份,除非不是除以100的年份,除非也除以400的年份-并非除以leap年,而2000则不是leap年)。 您可以使用任何喜欢的内置工具或其他日期计算工具。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。 例子 1 --> Apr, Dec 297 --> May 1776 --> Sep 2000 --> Jan, Jul 2016 --> Feb, Oct 3385 …
27 code-golf  date 

22
自然建筑
包含0的自然数通过以下方式正式定义为集合: 数字0定义为空集{} 对于Ñ ≥0,数Ñ 1被定义为ñ ∪{ Ñ }。 结果,n = {0,1,...,n -1}。 此过程定义的第一个数字是: 0 = {} 1 = {{}} 2 = {{},{{}}} 3 = {{},{{}},{{},{{}}}} 挑战 给定n,将其表示形式输出为一组。 规则 输出可以始终如一地使用任何托架字符如{},[],()或<>。01不允许使用任意字符(例如)。 代替上面的逗号,分隔符可以是任何标点符号。或可能不存在。 可以任意和不一致地包含空格(不是换行符)。 例如,带有方括号和分号作为分隔符的数字2是[[]; [[]]],或等价地[ [ ]; [ [ ] ] ],甚至[ [ ] ;[ []]] 指定集合中的元素的顺序无关紧要。因此,您可以在表示形式中使用任何顺序。例如,以下是一些有效的输出3: {{},{{}},{{},{{}}}} {{{}},{{},{{}}},{}} {{{}},{{{}},{}},{}} 您可以编写程序或函数。输出可以是字符串,或者,如果使用函数,则可以返回其字符串表示形式符合上述条件的嵌套列表或数组。 测试用例 …

30
计算欧拉的上位函数
背景 欧拉欧拉 函数φ(n)较少定义为整数的数目大于或等于n互质到n,即,可能的值的数目x在0 < x <= n为其 gcd(n, x) == 1。我们有 一个 小 欧拉 - 相关 的挑战 面前,但从来没有一个这只是计算它。 上位函数到整数的映射是OEIS A000010。 挑战 给定一个整数n > 0,计算φ(n)。您可以通过命令行参数,标准输入,函数参数或其他任何合理的方式接受输入。您可以通过标准输出,返回值或其他任何合理的方式给出输出。可接受匿名函数。您可能会假设输入不会溢出存储整数的自然方法,例如int在C中,但是您必须支持最多255个输入。 如果您的语言具有内置的totient函数,则可能无法使用它。 例子 φ(1) => 1 φ(2) => 1 φ(3) => 2 φ(8) => 4 φ(9) => 6 φ(26) => 12 φ(44) => 20 φ(105) => 48 …

30
给定n,求i ^ n
挑战 在尽可能少的字符中,找到给定n的i ^ n值(大于0的正整数)。应将其输出为String。 对于那些不知道的人,i被定义为i ^ 2 = -1。所以: i ^ 1 = i i ^ 2 = -1 i ^ 3 = -i i ^ 4 = 1 然后重复此步骤。 规则 如果您的语言支持复数,请不要使用任何可以解决此问题的函数或算法。 浮点数不正确的答案可以返回小数,但整数输入应能给出准确的结果 奖励积分 -5如果可以计算出其中n也为负的值 如果您可以计算任何实数的值,则为-15(此奖金包括上述奖金中的-5) 祝好运!

3
简单的红石模拟器
Redstone是Minecraft游戏中的一种材料,可用于许多复杂的装置。对于此程序,您只需模拟三个项目:红石线(用R表示),红石火炬(用T表示)和块(用B表示)。 以下是有关红石原理的基本规则列表: A redstone torch sends power to any adjacent redstone wire. TRRRR ^This redstone wire is powered. Redstone wire can only hold power for 15 blocks. TRRRRRRRRRRRRRRRR ^This last wire is unpowered, because the torch is >15 blocks away. A block is said to be powered if a powered …

18
将单数转换为复数
名词有两种形式,单数和复数。两者之间的转换非常容易。 通常,您以结尾s。例如 car=> cars。 如果结尾s,x,z,ch或sh与结束它es。例如 bus=> buses。 如果它y以一个辅音结尾,则将更改y为ies。例如 penny=> pennies。 如果以f或结尾fe,请将其更改为ves。例如 knife=> knives。 如果它o以一个辅音结尾,则将其更改为oes。例如 potato=> potatoes。 任务 您将被赋予一个单数名词。您必须将给定的名词转换为复数并将其输出。 规则 您将不会获得诸如mouse和的不规则名词moose。 不会给您例外,例如safe(safes;违反#4),piano(pianos;违反#5)和o(oes,违反#5)。 系统不会为您提供具有两种或多种可能的复数形式的单词,例如mosquito(mosquitos或mosquitoes)和roof(roofs或rooves)。 您将不会得到不可数的名词。 y 不算元音。 例子 car => cars bus => buses potato => potatoes knife => knives penny => pennies exception => exceptions wolf => wolves eye => eyes …

27
打印块对角矩阵
这是一个简单的,咬合大小(字节大小?)的代码高尔夫球:给定一个小于10的正整数的非空列表,打印一个块对角矩阵,该列表按顺序指定块的大小。块必须由小于10的正整数组成。因此,如果给出输入 [5 1 1 2 3 1] 例如,您的输出可能是 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 …

4
激光镜门户派对
2D板将包含以下对象: ^,>,v,或<:一个激光发射器朝上,右,下,或左分别。可能不止一个。激光将在空的空间中以直线行进(空的空间由点表示.)。激光不会穿过发射器。 *: 目标。激光穿过目标。可能不止一个。 该板还可能包含以下对象: @:坚固的墙。激光不会穿过这里。 \:向左倾斜的反射器。根据下表更改激光的方向: Direction laser is travelling Direction of laser after hitting reflector Up Left Right Down Down Right Left Up 反射器的工作原理应该非常直观。只需将它们想象为实际的两面镜子,并且方向应该清晰。 /:右倾反射镜。根据下表更改激光的方向: Direction laser is travelling Direction of laser after hitting reflector Up Right Right Up Down Left Left Down 1,2,3... 9:一个门户。该数字表示门户的通道-同一通道中将恰好有两个门户(例如,不会有三个1)。门户改变位置激光器到同一信道的其他入口的位置。例如: > 1 @ …
27 code-golf 

11
给我烤些莫吉
给定一个字符串,字符列表,字节流,序列…,它们既是有效的UTF-8,又是有效的Windows-1252(大多数语言可能会希望使用普通的UTF-8字符串),然后将其转换为(即假装为)Windows-1252到UTF-8。 演练示例 UTF-8字符串 I ♥ U T F - 8 表示为字节, 49 20 E2 99 A5 20 55 54 46 2D 38 这些字节在Windows-1252表中的字节值为我们提供了Unicode等效形式 49 20 E2 2122 A5 20 55 54 46 2D 38 ,这些形式表示为 I â ™ ¥ U T F - 8 例子 £ → £ £ → …

8
最佳Yahtzee分数
Yahtzee是一款带有五个六面骰子和一个计分表的游戏,其中有13个不同的盒子来填充得分。每个盒子都有自己的计分规则: 1s,2s,3s,4s,5s,6s的所有得分均等于相应骰子的总和(即,以3s得分的[3,2,3,1,5]一卷将获得6分:3每3)。 同类3个和同类4个(听起来很像,三个或四个骰子滚动相同)的得分点等于所有五个骰子的总和。 满屋(两个骰子显示一个值,其他三个显示另一个值)得分25分 小笔直(四个连续的值)得分30分 大笔直(所有连续值)得分40点 Yahtzee(所有骰子都显示相同的值)得分50分 第十三(机会)在游戏中很有意义,但对这个挑战而言意义不大;此外,游戏还有额外的Yahtzees奖励,在这里没有意义。因为挑战是... 给定五个骰子作为输入(五个整数1-6,但是输入很方便,可以假设输入始终有效),输出该“手”可能的最高分。出于挑战的目的,只有上面列表中的评分方法有效(特别是,机会不是此挑战的有效得分框)。分数应以其十进制数值输出,无论是整数还是字符串表示形式。应该立即将其识别为数字。前导/尾随空格很好,这是关于获得分数而不是表示。 编码高尔夫,这样,使用给定语言的字节最少的答案就可以获胜。禁止出现标准漏洞。 测试用例 (请注意,这些都是独立的,面临的挑战是取得一个骰子的“手”): in: 1 5 4 3 2 out: 40 in: 1 1 4 3 1 out: 10 in: 2 2 6 5 3 out: 6 in: 2 4 2 4 6 out: 8 in: 1 1 1 1 1 …
26 code-golf  number 

28
您可以掷出多少个骰子而不掷出最可能的数字
问题 从n=2骰子开始: 辊n骰子,与每个数为1〜6同样有可能在每个管芯上。 检查它们的总和是否等于n骰子的最可能总和3.5*n。 如果相等,则终止。 否则,打印n,并从一开始就重复n+2骰子 您的代码不必完全执行此过程,但应根据我们对randomness的定义,在概率上与之等效的随机输出。 您的程序应将所有数字单独输出。例如,如果程序最多有8个骰子,并用8个骰子掷出最可能的数字,则输出为: 2 4 6 示例运行 在2个骰子上,7是最可能的和。假设滚动的数字是2和3。然后,您将打印2。 在4个骰子上,14是最可能的和。比方说推出的数字是3,4,2,和5。然后,总和为14,因此程序将在此处终止。 在这种情况下,最终输出为"2"。 规则 代码高尔夫球,以字节为单位的最短解决方案获胜 适用标准漏洞 随机性的元定义适用 您可以使用函数也可以使用程序
26 code-golf  random 

30
始终以相同的长度输出
对于诸如Output的长度与代码相同的挑战以及Create output的长度是代码长度的两倍的挑战,我想到了一个单独的但相似的挑战。 任务是产生输出。它可以是字符串,字符列表,也可以是程序的默认输出格式。但是,无论输入如何,您的输出必须始终为相同的长度。更重要的是,对于不同的输入,输出应该是不同的。 输入项 单个整数nnn,其范围由语言选择确定。如果您的语言具有可变长度整数,范围是−231≤n&lt;231−231≤n&lt;231-2^{31} \leq n < 2^{31}。 输出量 字符串或字符列表,或打印到STDOUT或STDERR。您只能使用以下方法之一。无论输入如何,输出都应具有相同的长度,但是由您决定是哪个长度。输出中可能不包含数字字符0-9或减号-。输出应该是确定性的。 您应该能够通过形式证明,自变量或蛮力搜索来证明每个输出只有一个可能的输入。 这是一个代码问题,因此请删除所有多余的字节。欢迎所有语言,越多越好!

11
赌徒的谬误骰子
赌徒的谬误是一种认知偏见,我们错误地期望将来发生的事情不太可能在将来发生,而一段时间内未发生的事情在不久之后更可能发生。您的任务是实现特定版本。 挑战说明 编写一个函数,返回一个介于1到6之间(含1和6)的随机整数。问题是:第一次运行该函数时,结果应该是统一的(在1%以内),但是,每个后续调用都将偏向于那些以前滚动次数较少的值。具体细节如下: 骰子记得到目前为止生成的数字计数。 每个结果加权以下公式:countmax−countdie+1countmax−countdie+1count_{max} - count_{die} + 1 例如,如果卷数到目前为止是[1,0,3,2,1,0][1,0,3,2,1,0][1, 0, 3, 2, 1, 0],权重将是[3,4,1,2,3,4][3,4,1,2,3,4][3, 4, 1, 2, 3, 4],也就是说,你将4倍的可能性滚222比333。 请注意,该公式表示[a,b,c,d,e,f][a,b,c,d,e,f][a, b, c, d, e, f]的滚动结果的权重与[a+n,b+n,c+n,d+n,e+n,f+n][a+n,b+n,c+n,d+n,e+n,f+n][a + n, b + n, c + n, d + n, e + n, f + n] 规则与假设 适用标准I / O规则和禁止的漏洞 模切辊不应确定。(即,使用从易失性源中植入的PRNG,通常作为内置源使用。) 您的随机来源的周期必须至少为65535,或者是真正的随机性。 重量不得超过255,分配范围必须在1%以内 …
26 code-golf  random 

12
第N个狮ry号
前几天我想出了一系列数字,决定检查它的OEIS编号是多少。令我惊讶的是,这个序列似乎没有出现在OEIS数据库中,因此我决定以我自己的名字命名(请注意,比我聪明得多的其他人可能已经提出了这个建议,如果有人找到了此序列的实际名称,请发表评论,我将更改问题标题)。由于我在任何地方都找不到该序列,因此决定以我自己的名字命名,因此命名为“狮ry编号”。编辑:感谢@Surb引起我注意这个序列等于OEIS序列A053696-1的事实。 甲狮鹫号是一个数字形式的a+a2+...+axa+a2+...+axa+a^2+...+a^x,其中aaa和xxx都是大于或等于2的整数,而Gryphon序列是所有Gryphon编号按升序排列的集合。如果有多种方式来形成狮number号(第一个例子是303030,它们都是2+22+23+242+22+23+242+2^2+2^3+2^4和5+525+525+5^2),则该数字仅在序列中计数一次。前几个狮ry编号是:6,12,14,20,30,39,42,56,62,726,12,14,20,30,39,42,56,62,726, 12, 14, 20, 30, 39, 42, 56, 62, 72。 你的任务: 编写一个程序或函数,该程序或函数接收整数nnn作为输入并输出第nnn个狮ry号。 输入: 0到10000(含)之间的整数。您可以将序列视作0索引或1索引,以您喜欢的任何一个为准。请说明您在答案中使用的索引系统,以避免造成混淆。 输出: 与输入对应的狮ry号。 测试用例: 请注意,这假设序列是0索引的。如果您的程序采用1索引序列,请不要忘记增加所有输入数字。 Input: Output: 0 ---&gt; 6 3 ---&gt; 20 4 ---&gt; 30 10 ---&gt; 84 99 ---&gt; 4692 9999 --&gt; 87525380 得分: 这是代码高尔夫球,因此以字节为单位的最低分数获胜。

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.