Questions tagged «decision-problem»

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

2
匹配排列!
您的挑战是创建一个正则表达式,使其匹配自身的每个字符串排列,而不是其他任何内容。匹配项还必须区分大小写。 因此,例如,如果您的正则表达式为: ABC 它应该匹配(并且仅匹配)以下字符串: ABC ACB BAC BCA CAB CBA 它不应该匹配以下内容: AABC (contains an extra A) ABCD (contains an extra D) AC (no B) AAA (no B and C, extra 2 A's) abc (case-sensitive) 规则: 您可以使用任何喜欢的正则表达式。 有标准漏洞。 您的代码中必须至少包含两个不同的字符。这意味着类似1的解决方案是无效的。 正则表达式应仅包含可打印的ASCII,而不能包含其他任何内容。

16
确定关系是否可传递
挑战说明 让我们从一些定义开始: 一个关系是一组有序的元素对(在这个挑战中,我们将使用整数) 例如,[(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]是一个关系。 如果对于任意两对元素,并且在该关系中还存在一对,则该关系称为可传递的,(a, b)(b, c)(a, c) [(1, 2), (2, 4), (6, 5), (1, 4)]是传递的,因为它含有(1, 2)和(2, 4),但(1, 4)为好, [(7, 8), (9, 10), (15, -5)]是传递的,因为没有任何2双 (a, b),(c, d)存在,使得b= c。 [(5, 9), (9, 54), (0, 0)]不传递,因为它包含(5, 9)和(9, 54),但不包含(5, 54) 给定整数对列表,请确定一个关系是否可传递。 输入输出 您将获得任何合理格式的整数对列表。考虑一个关系 …

3
标记基于堆栈的语言
我一直在研究另一种称为Stackgoat的基于堆栈的高尔夫语言。在这个挑战中,您将为Stackgoat(或实际上是任何通用的基于堆栈的语言)编写Tokenizer。 例子 "PPCG"23+ ["PPCG", '23', '+'] 'a "bc" + ['"a"', '"bc"', '+'] 12 34+-"abc\"de'fg\\" ['12', '34', '+', '-', '"abc\"de'fg\\"'] "foo ['"foo"'] (empty input) [] ' "" ['" "', '""'] 规格 您需要处理的三种类型是: 弦乐,什么内"" 数字,任何数字序列 运算符,除空格外的任何其他单个字符 除非将其留在字符串中或将两个数字分隔开,否则实际上将忽略空格。 字符串/字符规范: 字符串以分隔",当\遇到时,下一个字符应转义。 字符前面加a ',后面的字符'应转换为字符串文字。'a->"a" ' 后面总会有一个角色 右引号应自动插入 规则: 没有形式eval允许 输入输出: 可以通过STDIN,函数参数或您的语言等效输入。 输出应为数组或您的语言最接近的等效数组。
15 code-golf  parsing  code-golf  hexagonal-grid  code-golf  string  code-golf  string  code-golf  combinatorics  code-golf  ascii-art  code-golf  string  game  counting  code-golf  arithmetic  complex-numbers  code-golf  string  code-golf  decision-problem  hexagonal-grid  code-golf  string  sequence  code-golf  number  arithmetic  code-golf  ascii-art  code-golf  ascii-art  code-golf  string  arithmetic  code-golf  number  simulation  code-golf  number  arithmetic  code-golf  string  sequence  unicode  code-golf  string  ascii-art  balanced-string  code-golf  number  clock  code-golf  ascii-art  number  code-golf  math  number  sequence  code-golf  string  ascii-art  balanced-string  code-golf  math  string  popularity-contest  graphical-output  image-processing  code-golf  string  permutations  code-golf  string  code-golf  random  code-golf  string  cryptography  palindrome  code-golf  chess  code-golf  math  array-manipulation  topology  code-golf  math  sequence  code-golf  keyboard  classification  code-golf  string  sequence  code-golf  natural-language  code-golf  math  number  sequence  sorting  code-golf  sequence  combinatorics  grid  tic-tac-toe  code-golf  geometry  code-golf  number  restricted-source  new-years  expression-building 

13
换位,素数,我的天哪!
任务很简单:您的程序读取一个整数作为输入,并输出它是否为质数。您可以打印“是/否”,“是/否”或明确标识结果的任何内容。 挑战在于,代码必须将其行和列进行转置。 为了排除明显的解决方案(最短的“简单”解决方案使用注释垂直逐个字符重复地进行注释),该度量与通常的代码高尔夫有点不同: 因为格式化在此挑战中非常重要,所以代码大小是在代码适合的最小矩形区域中度量的。换句话说,空格确实很重要,并且行的长度应相等(您不要为简单起见,在发布解决方案时必须实际执行此操作)。例如 int main() { return 0; } 的大小为4 * 13 = 52 (显然,它不符合以下两个条件之一:素数检测和可转位。) 最小尺寸获胜。 您可以使用任何语言和任何库函数,除非该函数的唯一目的是查找,生成或检测素数。 编辑: 虽然获胜者可能是Golfscript解决方案,但我将奖励50分以奖励最佳的C或C ++解决方案!

2
这是有效的棋步吗?
备用名称: ChessMoveQ 给定最多包含32个元素的列表,每个元素由4个元素组成,以及具有4个元素的第二个列表,请确定第二个输入中详细说明的移动是否是有效的国际象棋移动。 第一个列表指示所有32个部件在板上的位置。每个元素都将遵循结构<colour>, <piece-name>, <x-coord>, <y-coord>,例如["W", "K", 5, 1],它指示白色国王在上面5, 1(e1在正常的棋盘上)。第一个输入的所有元素都是唯一的。<x-coord>并且<y-coord>始终在1到8之间。一个示例是: [["B", "K", 3, 8], ["B", "Q", 1, 5], ["B", "N", 4, 7], ["B", "N", 7, 8], ["B", "B", 2, 4], ["B", "R", 4, 8], ["B", "R", 8, 8], ["B", "P", 1, 7], ["B", "P", 2, 7], ["B", "P", 3, …

4
它是有效的点球大战前缀吗?
在协会足球(也称为足球)中,点球大战是第二个打破常规的措施,可能会在加时赛(即协会足球加时赛)之后不能打成平局的比赛中使用。 在点球大战中,主裁判掷硬币确定射门发生在哪个目标,然后掷另一枚硬币确定哪个队先开始。但是,与此挑战相关的唯一事情就是随后发生的事情,如下所述。 每队在开始时有5罚则,罚分是0-0。如果在任何时候,一支球队的剩余罚款还不足以改变目前获胜的球队,那么枪战将停止。 如果没有剩余的罚分,但两支球队的得分相等,则两支球队将被另外判罚。重复该过程,直到点不相等为止。 枪战停止后,点球得分最高的球队获胜。 挑战 您的挑战是给定两个列表,A并B代表球队A和球队B分别得分的点球,以确定他们是否代表有效的点球大战。如果可以达到输入所代表的状态,则无论是否确定获胜队伍,枪战都是有效的。请注意,您可能必须测试两种情况(团队A启动,团队B启动),因为如果至少在一种情况下输入中描述的状态可达到,则输入有效。如果列表的长度不同,则由较长的列表代表的团队首先开始(它只能比另一列表的元素多,而较短列表的团队则无法开始,因为较长列表的团队将受到两次处罚)连续,因为较短的列表会过早耗尽)。 详细的例子 您可以跳到下面的“规则”部分,它们仅用于帮助解决挑战。 假设您将这个枪战作为输入,这-意味着没有进球,也没有进球X(无效): Team A: - X X X X Team B: - - - - X Assuming team A starts first: Team A: - (0 - 0) (max possible score 4 - 5) Team B: - (0 - 0) (max possible score …

2
不耐烦的可除性测试
您的任务是编写一个程序或函数,以确定一个数字是否可以被另一个数整除。要注意的是,即使没有给出数字的全部数字,也应尽快给出答案。 你的程序应该采取的整数d ≥2,然后是一连串的数字作为输入。这些代表的另一数字整数Ñ ≥1,开始于至少显著数字。在第一点ñ要么必须或不能被divisble d,你的程序应该输出适当的答案并退出。如果到达输入的末尾,则应输出完整的N是否可被D整除。 这是N可接受的输入格式的列表 (如果您认为应该允许不包含的内容,请留下评论): 标准输入:数字在单独的行上给出; 输入的结尾为EOF或特殊值; exit表示函数返回或程序退出。 模拟输入:例如通过击键或代表每个数字的十个按钮; 输入的结尾是一个特殊值; exit表示函数返回或程序退出。 具有全局状态的功能:用连续的数字重复调用; 输入的结尾是一个特殊值; exit表示该函数返回一个非null值。请注意,如果您使用全局状态,则必须在返回值或以其他方式重置后清除它,以使该函数可以多次运行。 Curried函数:返回另一个要用下一位数字或值调用的函数; 输入的结尾是一个特殊值或不带参数的函数; exit表示该函数返回答案,而不是另一个函数。 GUI提示或类似内容:重复显示; 输入的结尾是“取消”或等效值,或特殊值; 退出意味着提示停止出现。 迭代器函数:输入是有状态对象或函数,在调用时返回下一个数字 ,输入结尾是异常或特殊值; 退出意味着迭代器停止被调用。 D的输入和输出可以通过任何可接受的标准方法进行。 测试用例: 2; 6 => true 5; 6 => false 20; 0 3 => false 20; 0 4 => true 100; 1 => false 100; …

30
所有三个整数都不同吗?
您将获得3个整数作为输入。输入可以彼此相同或可以彼此不同。如果所有三个输入都互不相同,则必须输出1;如果任何输入重复多次,则必须输出0。 这是代码高尔夫球,因此请使您的代码尽可能短!

12
下班同事的问候机器人
我有一个同事在工作,每个星期二和星期四在家工作。在大约8:00 AM,他向我们发送了以下消息: 你好,今天我在家工作 为了减轻他每天待在家里的负担,我们希望为他自动化此任务。 挑战 编写尽可能少的字节的一段代码: 接收当前时间:您的代码可能会接收当前年,月(1-12),月(1-31),小时(0-23)和分钟(0-59)以及星期几的值(您可以选择此数字是从0还是1开始,如果0/1表示星期日,星期一或其他任何一天);另外,您可能会收到一个结构,如Date,DateTime,Calendar或者任何其他时间相关的结构,如果你的语言允许它。yyyyMMddHHmm如果需要,您还可以接收带有日期的字符串,或者包含两个单独的日期和时间字符串,然后是带有星期几的整数。随便吧。 返回两个一致的真实和错误值,指示是否必须将消息发送到工作聊天室。 规则 假定这段代码是定期调用的。尽管如此,确切的周期是无关紧要的。 如果星期几是星期二或星期四,时间是8:00 AM,错误余量为10分钟(包括7:50至8:10),则必须返回真实值。 只有在指定日期的这些小时之间第一次调用代码时,才必须发送真实值。我们不希望机器人连续发送多次相同的消息。您管理此限制的方式完全取决于您。 您的代码可能是重复执行的独立程序,也可能是始终运行的较大代码的一部分。你的选择。 您可以假设在执行代码之间不会重新启动。 您可能会认为日期永远是正确的。 鼓励对代码进行解释,尤其是对用于实现持久性的方法的解释。 例子 (Week starts on Monday: 1, the following invokations will be made in succession) 2018,08,27,08,00,1 = falsey (not Tuesday or Thursday) 2018,08,28,07,45,2 = falsey (out of hours) 2018,08,28,07,55,2 = truthy (first time invoked …

3
有山环吗?
挑战 给定一个正整数矩阵,请确定山是否存在“环”。对此挑战的正式定义是:给定一个正整数矩阵,是否存在任何正整数,矩阵中n存在一个闭环,该闭环严格大于n以使环中包含的所有单元均小于或等于到n。 让我们举一个真实的例子: 3 4 5 3 3 1 2 3 4 2 1 3 4 3 6 5 如果我们设置n为2: 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 我们可以清楚地看到,1沿边缘的s形成一个环。 我们将环定义为单元的有序集合,其中集合中的相邻单元在网格上也相邻(边或角)。此外,该环内部必须至少包含1个单元;也就是说,尝试仅边沿BFS填充整个矩阵(不包括集合中的单元),并且从不遍历集合中的一个单元,则必须至少丢失一个单元。 真实的测试案例 4 7 6 5 8 -> 1 1 1 1 1 …

15
我是Pillai素数吗?
甲皮莱素是素数为其中存在一些正米,使得(米!+ 1 )≡ 0pppmmm和 p ≢ 1(m!+1)≡0(mod p)(m!+1)≡0(mod p)(m! + 1) \equiv 0 \:(\text{mod } p)。p≢1(mod m)p≢1(mod m)p \not\equiv 1\:(\text{mod }m) 换言之,整数是一个素数皮拉伊如果它是一个素数,如果存在另一个正整数米,使得阶乘的米,加上1是整除p,如果p - 1不能被整除米。pppmmmmmm111pppp−1p−1p - 1mmm 给定一个正整数作为输入,请确定它是否为Pillai素数。皮莱素数的顺序是OEIS A063980。 例如,是Pillai素数,因为:232323 它是素数,只有2个因数。 和米= 18满足上述条件: 23 | (14 !+ 1 )和 14不划分 22 ; 23 | (18 !+ 1m=14m=14m = 14m=18m=18m = 1823∣(14!+1)23∣(14!+1)23 …

18
查找相关的数字分组
最近,我的声誉是25,121。我注意到每个数字分组(即用逗号分隔的数字)都是一个完美的正方形。 您的挑战是,给定一个非负整数Ñ和一元布尔黑匣子功能 ˚F:ž * → 乙,如果每个值产生truthy值˚F施加到的数字分组Ñ是truthy,和falsey否则。 您可以通过从右侧开始将数字分成3组来找到数字分组。最左边的组可以有1位,2位或3位数字。一些例子: 12398123 -> 12,398,123 (3 digit groupings) 10 -> 10 (1 digit grouping) 23045 -> 23,045 (2 digit groupings) 100000001 -> 100,000,001 (3 digit groupings) 1337 -> 1,337 (2 digit groupings) 0 -> 0 (1 digit grouping) 附加规则 此函数可以映射到布尔值(例如true和false),1s和0s或任何true / falsey值。请指定您的答案支持的格式。 您可以采用整数作为输入,也可以采用整数字符串(即由数字组成的字符串)。 您可以编写程序或函数。 将数字组传递给函数f时,应修剪所有不必要的前导零。例如,当f应用于N …

9
验证循环差异集
循环差集是一组具有唯一属性的正整数: 令其n为集合中的最大整数。 让r是(在该组不是必需的)的任何整数大于0但小于或等于n/2。 让k是解决方案的数量来(b - a) % n = r这里a和b是一组的任何成员。每个解决方案都是有序对(a,b)。(还要注意n,与许多语言的实现不同,此版本的模通过加负数使负数为正。) 最后,当且仅当这是一个循环差集时,的值k才取决于您对的选择r。就是说,所有的值都r为上述一致性提供相同数量的解。 可以通过以下示例进行说明: Cyclic difference set: {4,5,6,8,9,11} 0 < r <= 11/2, so r = 1,2,3,4,5 r=1: (4,5) (5,6) (8,9) r=2: (4,6) (6,8) (9,11) r=3: (5,8) (6,9) (8,11) r=4: (4,8) (5,9) (11,4) since (4-11)%11=(-7)%11=4 r=5: (4,9) (6,11) (11,5) 的每个值都r具有相同数量的解,在这种情况下为3,因此这是一个循环差集。 输入值 输入将是一个正整数列表。由于这是一个set属性,因此假设输入未排序。您可以假定n至少为2,尽管k可能为零。 …

7
他们可以是一周中的同一天吗?
挑战 给定一个非负整数,输出是否可以将两个日期(公历的日期)相差多少年以共享一周中的某一天。如果将年份除以4但不能除以100,或者将其除以400则认为是a年。 输出可能是: 虚假/真实(任一方向) 任何两个不同的值 一个独特的价值,另一个价值 通过程序返回码 通过成功/错误 通过任何其他合理的方式-请问您是否怀疑这可能会引起争议 但是,除了假/真实(因为这将允许不操作!)外,不是按两个不同的值集进行操作 详情 这是输入是否为OEIS序列A230995的成员。 成员: 0, 5, 6, 7, 11, 12, 17, 18, 22, 23, 28, 29, 33, 34, 35, 39, 40, 45, 46, 50, 51, 56, 57, 61, 62, 63, 67, 68, 73, 74, 78, 79, 84, 85, 89, 90, 91, …

7
我的孩子的字母垫是否按颜色正确分组?
我的孩子有一个字母垫可以玩,就像这样: 经过数月的随机放置地垫瓷砖后,我累了,并根据其背景颜色按部分分组放置了所有地垫瓷砖。因此,如果字母代表背景色,我会得到一个像这样的垫子: AABBCDDDE ABBCCCDEE ABCCCCDDE AACCCDDEE AAAACCCCE AAAAAACCC 因此,对于颜色A,B,C,D和E,总有一种方法可以在垫子中水平或垂直连接具有相同背景颜色的所有图块。这就是我所说的按颜色正确分组的垫子。您可以在下表中看到上一个示例的组: AA A A AA AAAA AAAAAA BB BB B C CCC CCCC CCC CCCC CCC DDD D DD DD E EE E EE E 此外,每种颜色只有一组,因此这是无效的: ABA ABA 因为颜色A磁贴不仅仅分为一组。这也将无效,因为这些图块既不水平连接也不垂直连接: AB BA 挑战 给定一个可打印ASCII范围内的二维字符数组(只要两个维度的大小均等于或大于1,就不必是正方形),请检查该数组是否表示按颜色正确分组的垫子(数组中的每个字符都代表不同的颜色)。输入可以采用任何合理的格式,只要它表示二维字符数组(2D char数组,相同长度的字符串数组,依此类推),并且输出必须是一对真值和假值(0 / 1,'t'/'f',true / false,无论返回什么,并且返回值在输入中都保持一致)。 这是代码高尔夫,因此每种语言中最短的程序/函数/方法/ lambda可能会获胜! 例子 A …

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.