Questions tagged «decision-problem»

对于涉及确定输入是否满足特定条件的挑战,以及输出代表该决策的一些数据。

30
这个数字是数字吗?
挑战 甲纯位数是一个非负整数,其位数都相等。 创建一个函数或完整程序,该函数或完整程序将单个整数作为输入,并且如果输入的数字是以10为底的repdigit,则输出真实值,否则输出false。 输入保证为正整数。 您可以不受限制地接受并使用输入作为10进制的字符串表示形式。 测试用例 这些都是1000以下的位数。 1 2 3 4 5 6 7 8 9 11 22 33 44 55 66 77 88 99 111 222 333 444 555 666 777 888 999 可以在OEIS上找到更大的列表。 获奖 以字节为单位的最短代码获胜。这并不是说不欢迎用冗长的语言回答。

30
这个数字是三角形的吗?
挑战 给定一个正整数,请确定它是否为三角数,并相应地输出任意两个恒定且不同的值之一。 定义 甲三角形号码是可以被表示为连续的正整数的总和,从1开始。它们也可以与式表示的数n(n + 1) / 2,其中n一些正整数。 测试用例 真相: 1 3 6 10 15 21 55 276 1540 2701 5050 7626 18915 71253 173166 222111 303031 307720 500500 998991 虚假: 2 4 5 7 8 9 11 16 32 50 290 555 4576 31988 187394 501500 999999 规则 您输入的可能是函数或程序。 …

9
Sharkovskii的奇怪排序
介绍 在这个挑战中,我们将处理正整数的某种顺序。排序如下: 3, 5, 7, 9, 11, ... 2*3, 2*5, 2*7, 2*9, 2*11, ... 4*3, 4*5, 4*7, 4*9, 4*11, ... 8*3, 8*5, 8*7, 8*9, 8*11, ... 16*3, 16*5, 16*7, 16*9, 16*11, ... ... ... 64, 32, 16, 8, 4, 2, 1 我们首先以升序列出所有大于1的奇数整数。然后,我们列出两个大于1的奇数整数,然后分别列出4次,然后8次,依此类推:对于所有k,我们以升序列出2 k次大于1的奇数整数。最后,我们以降序列出两个幂,以1结尾。每个正整数在此“列表”中恰好出现一次。 更明确地说,考虑两个不同的正整数A = n·2 p和B = m·2 q,其中n,m≥1是奇数,而p,q≥0。然后,一来之前乙的排序,如果满足下列条件之一成立: …

30
验证随机模具自卸车
差不多六年前,老乡PPCG成员steenslag 发布以下挑战: 在标准骰子(骰子)中,数字的排列方式是使相对的面数增加到七个。用您喜欢的语言编写尽可能最短的程序,该程序输出一个随机抛出,然后输出9个随机小费。翻斗是骰子的四分之一转,例如,如果骰子面向5,则所有可能的翻斗都是1,3,4和6。 所需输出示例: 1532131356 因此,既然每个人都完全忘记了它,并且获胜的答案早已被接受,我们将编写一个程序来验证由提交的解决方案生成的模具翻转序列。(这很有道理。假装确实如此。) 挑战 系统会为您的程序或函数 指定一个序列,例如1532131356。验证每个连续数字为: 不等于前一位 不等于7减去前一位数字 (您不必验证第一位数字。) 规则 如果输入有效,则程序必须返回真实值,否则返回假值。 您可以假设输入仅包含1-6位数字,并且至少包含1个字符。序列不会像Steenslag的挑战那样具有固定的长度。 您可以将输入作为字符串("324324"),数组或类似数组的数据结构([1,3,5])或多个参数(yourFunction(1,2,4))。 标准I / O和漏洞规则适用。 测试用例 特鲁西 1353531414 3132124215 4142124136 46 4264626313135414154 6 2642156451212623232354621262412315654626212421451351563264123656353126413154124151545145146535351323 5414142 虚假 重复数字 11 3132124225 6423126354214136312144245354241324231415135454535141512135141323542451231236354513265426114231536245 553141454631 14265411 模具的相对面 16 42123523545426464236231321 61362462636351 62362462636361

18
数字键的骑士数字
对于标准小键盘上的非零数字 789 456 123 考虑将一个国际象棋骑士放置在任何数字上,并以任意数量的正常L形跳动来移动它,找出正的十进制整数。用这种方式可以表示哪些正整数? 其中之一是38,因为骑士可以从3那里开始,然后向左和向上移动8。381并且383也是可能的。 3如果不进行跳转(允许),则它本身是可能的。5也是,但是从不能到达其他数字5,因此它是5出现该数字的唯一数字。 编写一个程序或函数,该程序或函数需要一个正的十进制整数(如果需要,可以将其作为字符串),并且如果该数字可以由骑士在数字小键盘上以上述方式表示,则打印或返回真实值,否则输出一个falsy值。 以字节为单位的最短代码获胜。抢七是较早的答案 例子 真相: 1, 2, 3, 4, 5, 6, 7, 8, 9, 16, 18, 38, 61, 81, 294, 349, 381, 383, 729, 767, 38183, 38383, 18349276, 183492761, 618349276 虚假: 10, 11, 50, 53, 55, 65, 95, 100, 180, 182, 184, 185, 186, …

24
这是Loeschian号码吗?
正整数k是Loeschian数,如果 k可以表示i*i + j*j + i*j为i,j整数。 例如,第一正Loeschian号码为:1(i=1,j=0); 3(i=j=1); 4(i=2,j=0); 7(i=2,j=1); 9(i=-3,j=3); ...注意i,j对于给定k的不是唯一的。例如,9也可以与产生的i=3,j=0。 这些数字的其他等效特征是: k可以表示i*i + j*j + i*j为i,j非负整数。(对于每对整数i,j都有一对给出相同值的非负整数k) 有一组k连续的六边形在六边形网格上形成网格化(请参见k = 4和的插图k = 7)。(由于这个属性,这些数字可在移动蜂窝通信网络中找到应用。) 在序列的OEIS页面中查看更多特征。 挑战 给定一个正整数,如果它是Loeschian数,则输出真实结果,否则,则输出虚假结果。 程序或函数应处理(例如不到一分钟)最多达1000或数据类型限制的输入。 代码高尔夫。最短的胜利。 测试用例 以下数字应输出真实结果: 1, 4, 7, 12, 13, 108, 109, 192, 516, 999 以下数字应输出虚假结果: 2, 5, 10, 42, 101, 102, 128, 150, 501, …
33 code-golf  math  number  number-theory  decision-problem  code-golf  kolmogorov-complexity  code-golf  sequence  code-golf  path-finding  chess  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  math  arithmetic  code-golf  code-golf  number  code-golf  geometry  code-golf  math  code-golf  code-golf  kolmogorov-complexity  alphabet  code-golf  regular-expression  hexagonal-grid  king-of-the-hill  path-finding  java  code-golf  string  sorting  code-golf  string  grid  code-challenge  compression  code-golf  random  code-golf  sequence  arithmetic  code-golf  number  grid  tiling  code-golf  tips  code-golf  sequence  number-theory  recursion  code-golf  string  grid  code-golf  math  number  combinatorics  permutations  string  code-challenge  code-golf  sequence  number-theory  subsequence 

29
它是前缀代码吗?
在信息论中,“前缀代码”是一个字典,其中所有键都不是另一个的前缀。换句话说,这意味着没有一个字符串以其他任何字符串开头。 例如,{"9", "55"}是前缀代码,但{"5", "9", "55"}不是。 这样做的最大优点是,可以将编码的文本记下来,并且它们之间没有分隔符,并且仍然可以唯一地解密。这在诸如Huffman编码之类的压缩算法中得到了体现,该算法始终会生成最佳的前缀代码。 您的任务很简单:给定一个字符串列表,确定它是否是有效的前缀代码。 您的输入: 将是任何合理格式的字符串列表。 仅包含可打印的ASCII字符串。 将不包含任何空字符串。 您的输出将是一个true / falsey值:如果是有效的前缀代码,则为True,否则为falsey。 这是一些真实的测试用例: ["Hello", "World"] ["Code", "Golf", "Is", "Cool"] ["1", "2", "3", "4", "5"] ["This", "test", "case", "is", "true"] ["111", "010", "000", "1101", "1010", "1000", "0111", "0010", "1011", "0110", "11001", "00110", "10011", "11000", "00111", "10010"] 以下是一些错误的测试案例: ["4", "42"] …

30
这是n说话吗?
受到启发吗?,我提出了更艰巨的挑战。给定一个字符串,对于任何,确定该字符串是否为n-speak。n≥2ñ≥2n\geq 2 通过重复每个字母次来定义语音。当,字符串转换为。您的目标是弄清楚该输入对于任何n语音转换是否有效。nñnn=4ñ=4n = 4HelloHHHHeeeelllllllloooo 应当注意,对于,任何有效的n口语句子也是有效的k口语。因此,要解决的困难部分将是奇数值。n=2kñ=2ķn = 2knñn 输入值 至少包含2个字符的字符串。输入也可以是字符列表。输入区分大小写。 输出量 Truthy如果字符串是n说话,则为falsey否。 例子 真实情况 HHeelllloo,, wwoorrlldd!! TTTrrriiipppllleee ssspppeeeaaakkk QQQQuuuuaaaaddddrrrruuuupppplllleeee ssssppppeeeeaaaakkkk 7777777-------ssssssspppppppeeeeeeeaaaaaaakkkkkkk 999999999 aaaabb aaaaaaaabbbbcc aaaaabbbbb @@@ 如果要生成其他真实情况,可以使用此MathGolf脚本。将字符串放在引号内,并将的值作为输入。nñn 虚假案件 Hello, world! TTTrrriiipppllleee speak aaaaaaaaaaaaaaaab Ddoouubbllee ssppeeaakk aabbab aaaabbb a (does not need to be handled) (empty string, does not need to …

11
谁将会赢得选举?
这是一个挑战,其中有两个人1和2正在竞选办公室。人们在1和2的世界中以确定的方式进行投票,这可以使候选人在选举前弄清楚结果。 注意:这并不表示任何外部选举或其他政治事件。 两个人正在竞选办公室。我们将这些人称为1和2。因为他们俩都想知道他们是否会赢得选举,所以他们决定使用他们对人的知识以及一些代码来确定结果。由于要尽量减少政府支出,因此代码必须尽可能短。 您的任务:根据一连串的投票方式,输出赢得选举的人。 在1和2的有趣和令人兴奋的世界中,共有五类人: A:肯定会投1票的人。 B:肯定会投赞成票2的人。 X:将投票支持的人,无论左边的人投票支持谁。如果他们的左边没有人,则他们投票给右边的人投票的人。如果不清楚其右边的人在为谁投票,则他们不会投票。 Y:人们会投票反对他们左边的那个人。如果他们的左边没有人,那么他们将投票反对右边的人。如果不清楚其右边的人在为谁投票,则他们不会投票。 N:不投票的人。 这是从左到右评估的。 例: 为了清楚起见,任何被“评估”的人都是小写字母。 Input: `XXAYAN` xX Votes for whoever their friend is voting for. Their friend has not decided yet, so it is unclear, so they do not vote. Xx Person to left is voting "none" so votes "none." a …

7
一维有限平铺
该挑战的目的是确定是否可以平铺一维块的集合以形成有限的连续块。 阿片是零和一的一个非空的,有限序列的开始和结束与一个。一些可能的作品是1,101,1111,1100101。 平铺是指将小块排列成一个连续的块。一件中的一个可以占据零的位置,但另一件中的一个不能占据零的位置。 同样地,如果我们将一个视为“实心材料”,将零视为“孔”,则这些零件应适合于形成单一拉伸,而不会留下任何孔。 要形成平铺,只能沿着其一维空间移动碎片。(它们不能拆分或反映)。每件仅使用一次。 例子 三块101,11,101可以平铺如示于下,其中每个片与所需的移位表示: 101 11 101 所以获得的拼贴是 111111 作为第二个示例,片段11011和1001101不能平铺。特别是转变 11011 1001101 无效,因为有两个会发生冲突;和 11011 1001101 无效,因为结果将包含零。 附加规则 该输入是一个或多个片段的集合。允许使用任何合理的格式;例如: 字符串列表,其中每个字符串可以包含两个不同的一致字符; 几个数组,其中每个数组包含一块的位置; 一列(奇数)整数,例如每个数字的二进制表示形式定义了一个片段。 的输出应该是一个truthy值,如果平铺是可能的,和一个falsy值否则。输出值不必保持一致;也就是说,对于不同的输入,它们可以不同。 允许使用任何编程语言编写程序或功能。禁止出现标准漏洞。 以字节为单位的最短代码获胜。 测试用例 每个输入在不同的行上 特鲁西 1 111 1, 1 11, 111, 1111 101, 11, 1 101, 11, 101 10001, 11001, 10001 100001, 1001, 1011 10010001, …

16
定义素数的不同方法
我最喜欢的质数定义之一如下: 2是最小的素数。 如果大于2的数字不能被较小的质数整除,则为质数。 但是这个定义似乎是任意的,为什么2?为什么没有其他号码?好吧,让我们尝试其他一些数字来定义n-素数,这样 n是最小的n-素数。 如果大于n的数字不能被较小的n-素数整除,则为n-素数。 任务 这里的任务是编写一个接受两个输入的程序,一个正整数n和一个正整数a。然后它将确定a是否为n-素数。您的程序应输出两个不同的值,一个表示“是,它是n-素数”,另一个表示“否,它不是n-素数”。 这是一个代码问题,因此答案将以字节计分,而字节数越少越好。 测验 以下是n = 2至n = 12的前31个素数的列表(1是唯一的1个素数) n=2: [2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127] n=3: [3,4,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127] n=4: [4,5,6,7,9,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113] n=5: [5,6,7,8,9,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113] n=6: [6,7,8,9,10,11,13,15,17,19,23,25,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107] n=7: [7,8,9,10,11,12,13,15,17,19,23,25,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107] n=8: [8,9,10,11,12,13,14,15,17,19,21,23,25,29,31,35,37,41,43,47,49,53,59,61,67,71,73,79,83,89,97] n=9: [9,10,11,12,13,14,15,16,17,19,21,23,25,29,31,35,37,41,43,47,49,53,59,61,67,71,73,79,83,89,97] n=10: [10,11,12,13,14,15,16,17,18,19,21,23,25,27,29,31,35,37,41,43,47,49,53,59,61,67,71,73,79,83,89] n=11: [11,12,13,14,15,16,17,18,19,20,21,23,25,27,29,31,35,37,41,43,47,49,53,59,61,67,71,73,79,83,89] n=12: [12,13,14,15,16,17,18,19,20,21,22,23,25,27,29,31,33,35,37,41,43,47,49,53,55,59,61,67,71,73,77]

6
在矩阵中查找蛇
挑战 给定一个二进制矩阵和一个二进制字符串,确定是否可以从矩阵的任何点开始找到该二进制字符串,然后在任何后续点向任意方向移动以形成二进制字符串。就是说,是否可以在矩阵内部找到折起的字符串? 字符串只能以90度或180度折叠(边缘连接;曼哈顿距离1),并且不能在任何一点重叠。 例 让我们来看下面的例子: Matrix: 010101 111011 011010 011011 Snake: 0111111100101 这是一个真实的测试案例。我们可以看到蛇在以下位置折叠起来: 0-1 0 1 0 1 | 1 1 1-0 1 1 | | | | 0 1 1 0-1-0 | | 0 1-1 0 1 1 规则 适用标准漏洞 如果愿意,您可以将字符串的长度以及矩阵的宽度和高度作为输入 您可以将二进制矩阵和二进制字符串作为多行字符串/字符串数组/换行连接的字符串/其他任何连接的字符串和字符串 您可以将维度作为平面数组而不是几个参数 您的程序必须在一分钟之内完成任何长度不超过10的字符串的任何5 x 5矩阵 局限性 矩阵不一定是正方形 字符串将为非空 …

30
等于,等于或等于!
编写尽可能短的代码,如果两个给定的整数值相等或它们的总和或绝对差为5,则返回true。 测试用例示例: 4 1 => True 10 10 => True 1 3 => False 6 2 => False 1 6 => True -256 -251 => True 6 1 => True -5 5 => False 我在python2中能想到的最短长度是56个字符: x=input();y=input();print all([x-y,x+y-5,abs(x-y)-5])<1 -9,谢谢@ElPedro。它采用x,y格式的输入: x,y=input();print all([x-y,x+y-5,abs(x-y)-5])<1

25
我在想一个数字(警察线)
强盗的线程在这里 在这个警察强盗挑战中,警察会想到一个正整数。然后,他们将编写一个程序或函数,当提供数字作为输入时输出一个值,而对于所有其他正整数输入则输出另一个值。然后,警察会在答案中显示该程序,并将数字保密。强盗可以通过找到数字来破解答案。 要注意的是:这不是 代码高尔夫,而是您的分数将是秘密数字,分数越低越好。显然,在强盗仍在尝试寻找分数时,您无法透露分数。发布一周后仍未破解的答案可能会显示其分数并标记为安全。安全答案无法破解。 可能不言而喻,但您应该能够为答案打分。那就是您应该确切知道决策机器接受什么值。仅仅知道有一个是不够的。 密码功能的使用 与大多数警察和强盗要求您不要使用加密功能的挑战不同,此挑战不仅完全允许他们使用,而且鼓励他们使用。只要您想赢,就可以以任何方式自由创建答案。话虽如此,这里也欢迎使用其他方法的答案。挑战的目标是获胜,只要您不作弊,就不会有什么失败。

20
卓越的通过时间
有时候,当我真的很无聊时,我喜欢取一个非负整数数组的总和。我只取长度为2的幂的数组的总和。不幸的是我经常犯错误。幸运的是,我通过以下方式跟踪自己的工作: 我添加成对的相邻数字,直到只剩下一个。例如: 6 + 18 + 9 + 6 + 6 + 3 + 8 + 10 = 24 + 15 + 9 + 18 = 39 + 27 = 66 您的工作是确定我是否在某个地方犯了错误。您既可以将输入传递给函数,也可以从标准输入中读取。可以打印或返回输出。 输入:数组/列表/等。非负整数,如果您的语言需要,还可以包含该数组的长度。该数组将是从左到右然后从上到下读取的所有数字。例如,上面的数组将变为: [[6, 18, 9, 6, 6, 3, 8, 10], [24, 15, 9, 18], [39, 27], [66]] 或者, [6, …

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.