Questions tagged «decision-problem»

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

2
这些列表是否相等?
如您所知,python有列表。您可能不知道这些列表可以包含自己。 a = [] a.append(a) Python 2 Python 3 这些很酷,您可以使用它们做很多有趣的事情,但是您无法将它们进行比较。 a = [] a.append(a) b = [] b.append(b) a == b Python 2 Python 3 任务 您的工作是用Python(或可以直接处理python对象的任何语言)编写一个函数,该函数将包含两个可能包含自身的列表并进行比较。 如果两个列表具有相同的长度,并且不存在数字序列,则两个列表是相等的,因此按此序列对两个列表进行索引会导致在此相等定义下两个对象不相等。为了简单起见,列表中包含的所有非列表对象都是python整数,应将其与python的内置相等性进行比较。 您的程序不应依赖python的递归深度来确定列表是否无限深。那是: def isInfinite(a,b): try: a==b return False except RunTimeError: return True 这不是确定两个列表是否为自引用的有效方法。 测试用例 假设您定义一个函数 equal a = [] a.append(a) b = [] …

8
反向插入排序
目的 根据“ 插入排序”对列表进行排序的动作,生成原始的加扰列表。原始列表将包含从0到N-1(包括)的所有数字,其中N输入的大小。 输入项 一个包含对列表进行排序的必要动作的列表。每个值代表由原始数字(加扰的数字)移位到其右位置的插槽数量,请记住,此过程是从左到右。输入列表 中(0索引)位置的值i将介于0和之间i。 您不需要处理无效的输入,在这种情况下,任何行为都是可以接受的(崩溃,无限循环等)。 输出量 混乱的名单 逐步生成动作 Scrambled List | Moves to sort [4,0,2,1,3,5] | [0, , , , , ] #4 stay in place [4,0,2,1,3,5] | [0,1, , , , ] #0 is moved 1 slot to the left [0,4,2,1,3,5] | [0,1,1, , , ] #2 …
19 code-golf  array-manipulation  code-golf  code-golf  animation  code-golf  restricted-source  code-golf  java  code-golf  decision-problem  graph-theory  code-golf  conversion  electrical-engineering  code-golf  ascii-art  code-golf  string  substitution  code-golf  math  code-golf  string  set-theory  code-golf  code-golf  compile-time  code-golf  kolmogorov-complexity  binary  code-golf  sequence  cops-and-robbers  code-golf  subsequence  card-games  code-golf  sequence  primes  code-golf  code-golf  number  graphical-output  music  code-golf  ascii-art  code-golf  string  lambda-calculus  code-golf  string  code-generation  code-golf  unicode  code-golf  math  combinatorics  code-golf  balanced-string  code-golf  sequence  cops-and-robbers  code-golf  sequence  cops-and-robbers  code-challenge  fastest-code  chess  code-golf  math  graphical-output  code-golf  string  hello-world  animation  code-golf  number  arithmetic  code-golf  integer  code-golf  code-golf  combinatorics  code-golf  kolmogorov-complexity  graphical-output  code-golf  string  code-golf  code-golf  game  code-golf  math  combinatorics  code-golf  ascii-art  popularity-contest  random  code-golf  arithmetic  number-theory  integer  code-golf  tips  underload  code-golf  math  sequence  primes  code-golf  math  path-finding  code-golf  ascii-art  primes  code-golf  kolmogorov-complexity  alphabet 

4
确定战争游戏的赢家
该卡的游戏战争是在最后的结局是完全由甲板的初始配置决定的,只要一定的规则并遵守在卡片从比赛场地拿起并移动到甲板的顺序有趣。在这次挑战中,将只有2个玩家,大大简化了事情。 游戏 每位玩家将获得26张牌。 每个玩家将顶牌正面朝上放置在卡组中。拥有较高排名卡(Ace > King > Queen > Jack > 10 > 9 > 8 > 7 > 6 > 5 > 4 > 3 > 2)的玩家赢得回合,并将其卡放置在对手卡的顶部,将其翻转,然后将其添加到其牌组的底部(因此,他们的获胜牌位于牌组的底部) ,而另一位玩家的输家牌正好在其上方)。直到玩家之一的卡用完为止。 如果这些牌的等级相同,则每个玩家将其牌组的前2张牌面朝上放置在其前一张牌的顶部(这样,位于牌组顶上的卡牌便是堆叠中的第二张牌,并且排名第二的卡片位于顶部)。然后,再次比较(每叠顶牌的排名),获胜者将其整个叠放在输家的整个叠层之上,将其上下颠倒,然后将其放在牌组的底部。如果还有其他平局,则以相同的方式玩更多的牌,直到选择获胜者或一个玩家的牌用完为止。 如果任一位玩家需要从其牌组中抽出一张牌,但其牌组为空,则他们立即输掉比赛。 挑战 给定玩家牌组中的两张纸牌列表,采用任何方便的格式,如果玩家1获胜,则输出真实值,如果玩家2获胜,则输出假值。 为方便起见,将用表示10张卡T,并且将面部卡缩写(Ace -> A, King -> K, Queen -> Q, Jack -> J),以便所有卡都长一个字符。或者,等级可以用十进制整数2-14(Jack -> 11, Queen -> 12, …

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

13
精致分区
考虑一个整数数组: [1, 0, 9, 1, 3, 8] 有很多方法可以将该列表划分为连续的子列表。这是三个: A: [[1, 0, 9], [1, 3, 8]] B: [[1], [0, 9], [1, 3], [8]] C: [[1, 0], [9, 1], [3, 8]] 我们将调用一个分区Ÿ另一个分区的和改进X,如果X可以从以下地址获得ÿ通过加入一些子列表的重新走到一起。 所以,B是的改进A:如果我们前两个和最后两个子列表加入到一起,我们得到A。但是,C是不是的改进A:我们不得不分手的9和1以恢复A从它。同样,任何分区本身都是琐碎的改进。 请注意,我们不允许在任何时候重新排列任何子列表或元素。 挑战 鉴于两个分区(整数列表的列表)X,并Y,确定是否Y是一个细化X。 您可以假设分区将仅包含从0到的整数9(含)。您不能假定X和Y是同一列表的分区(如果不是,则它们也不是彼此的优化)。X和/或Y可能为空,但永远不会包含空子列表。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输入可以采用任何方便的字符串或列表格式。由于元素只能是一位整数,因此您可以选择在子列表中省略定界符,但请确保前导0s是可能的。您可以选择采取X和Y顺序相反。 输出应该是truthy如果Y是的细化X和falsy否则。 您的代码必须能够在一台合理的台式机上在一秒钟内解决以下每个测试用例。(这仅仅是为了避免简单的暴力解决方案而进行的健全性检查。) 这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 测试用例 每个测试用例都单独显示,写成X Y。我正在使用GolfScript / CJam样式的数组表示法来节省一些水平空间: 真相: [] [] [[0]] [[0]] …

13
谢尔宾斯基层
首先,/\您可以通过在下面添加一条线来创建类似于Sierpinski三角形的图案,从而... 任何松散的分支/或\再次分裂为两个分支:/\。 分支的任何碰撞都将\/死,其下无任何东西(只有空格)。 重复这些规则将产生 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ etc... (ViHart的启发) 编写一个程序或函数,该程序或函数接受一个正整数N,并将此模式的前N行打印到stdout,且前导或尾随空格不超过所需数量。 例如,如果输入是1输出,则必须为 /\ 如果输入是2输出,则必须为 /\ /\/\ 如果输入是8输出,则必须为 /\ /\/\ /\ /\ /\/\/\/\ /\ /\ /\/\ /\/\ /\ /\ /\ /\ /\/\/\/\/\/\/\/\ 等等。 字节最少的代码获胜。

9
这条线是否穿过那个正方形?
将第一个象限(包括正x轴,正y轴和原点)划分为1x1网格,每个网格均由其左下角的坐标标记,如下所示: 请注意,每个网格都包含其边界和顶点。使用数学符号,标为(m,n)的网格将代表正方形{(x,y) | m ≤ x ≤ m+1, n ≤ y ≤ n+1}。 鉴于形式的直线ax+by+c=0与整数a,b以及c,和由下式表示的网格(m,n)线是否通过网格,即,在给定网格中的任何点是否是上线,输出。 a b c m n output 1 1 0 0 0 true 1 1 0 1 1 false 1 1 0 0 2 false 1 1 -3 0 1 true 1 1 -3 0 0 false …

8
这是四边形周期性的吗?
在数学中,循环四边形是一个顶点都位于同一圆上的四边形。换句话说,每个顶点都位于其他三个顶点的外接圆上。有关更多信息,请参见MathWorld文章。 例子 这些四边形是循环的: 该梯形不是周期性的。 (图片来自维基百科) 目的 给定形成凸四边形的四个顶点的逆时针坐标,确定四边形是否为循环的。 坐标将是整数(但是,请注意,圆心坐标和外接半径不一定是整数。)如上一段所隐含,没有三个点是共线的,也没有两个重合的点。 输入输出 您可以使用任何合理的格式进行输入。特别是[[x1,x2,x3,x4],[y1,y2,y3,y4]],[[x1,y1],[x2,y2],[x3,y3],[x4,y4]]和复数无一不精。 使用true和false的任何不同一致值进行输出。 测试用例 真正: [0,0], [314,0], [314,1], [0,1] [-5,5], [5,-5], [1337,42], [42,1337] [104, -233], [109, -232], [112, -231], [123, -224] 假: [0,0], [314,0], [314,100], [0,99] [31,41],[59,26],[53,58],[0,314]

26
coprime这个词是吗?
给定一个单词,将每个字母都当作英语字母中的数字(因此a变成1,b变成2,z变成26,依此类推),然后检查所有它们(包括重复项)是否都是成对的互质数。 输入的内容正好是一个小写英文字母的单词。如果单词是互质的,则输出为事实:任何真值/假值,但只有它们的两个变体。禁止出现标准漏洞。 测试用例: man: True day:(True感谢ØrjanJohansen) led:False(l=12和d=4有gcd=4) mana:(True尽管a多次出现,1和1是互质数) mom:False(gcd(13,13)=13)) of:False(感谢XNOR;虽然15∤6,gcd(15,6)=3) a:(True如果没有成对的字母,也将该单词视为互素) 这是一个代码高尔夫球,因此以字节为单位的最短代码胜出!

24
检查我的隧道阵列
假设您有一个整数数组,其非负值是指向同一数组中其他位置的指针,只是这些值表示隧道,因此如果位置A中的值为正并指向位置B,则位置中的值B也必须为正,并指向位置A以代表隧道的两端。所以: 挑战 给定一个整数数组,请检查该数组是否符合作为隧道数组的限制,并为true和false返回两个不同的连贯值。 对于非隧道位置,数组中的值将小于零;对于隧道位置,数组中的值将小于零或大于零。如果您的数组是1索引的,则零值表示非隧道位置。不需要检查非隧道值。 如果单元格中的正值指向自身,那是错误的。如果A指向B,B指向C,C指向A,那是错误的。如果一个正值指向数组的范围之外,那是错误的。 例子 以下示例是0索引的: [-1, -1, -1, 6, -1, -1, 3, -1, -1] Truthy (position 3 points to position 6 and vice versa) [1, 0] Truthy (position 0 points to position 1 and vice versa) [0, 1] Falsey (positions 0 and 1 point to themselves) [4, 2, …

12
颠簸
您的任务是编写一个计算机程序或函数,该程序或函数采用长度至少为2的正整数列表,并确定它们是否为“ zigzag”。当且仅当数字交替地大于和小于其前面的数字时,序列才为之字形。例如和是曲折形,但和不是。[ 1 ,2 ,0 ,3 ,2 ][1个,2,0,3,2][1,2,0,3,2][ 4 ,2 ,3 ,0 ,1 ][4,2,3,0,1个][4,2,3,0,1][1,2,0,0,3,1][1,2,0,0,3,1][1,2,0,0,3,1][ 1 ,2 ,3 ,1 ][1个,2,3,1个][1,2,3,1] 根据您的决定,应为每种可能性输出两个不同的一致值之一(之字形而不是之字形)。 程序或函数的代码点本身也必须是Z字形。这意味着当您采用代码点序列时,它应该是锯齿形的。 这是代码高尔夫球,因此答案将以字节计分,而字节越少越好。

2
这是一个韦尔矩阵吗?
有一种n × n矩阵W,称为基本Weyr规范形式。使用以下参考图,此类矩阵由其框描述,并具有以下属性: 主对角线块W¯¯ II是Ñ 我 ×n个我矩阵形式的λ 我Ñ 我其中我Ñ 我是Ñ 我 ×n的我单位矩阵。 Ñ 1 ≥Ñ 2 ≥...≥Ñ ř 第一superdiagonal块w ^ K-1,K为ķ∈2..r是Ñ K-1 ×n个ķ矩阵是行还原梯形形式列满秩,或更简单地说,我Ñ ķ坐在的顶部n k-1 -n k行零。 所有其他块均为0矩阵。 例如: 主对角线块(黄色)使得n i为4、2、2和1。 第一个超对角线块为绿色。 灰色区域由所有其他块组成,都为0。 对于这一挑战,我们将假设λ= 1。 输入值 任何方便格式的0和1的方阵。 输出量 对于输入矩阵是否为Weyr,输出两个不同的值之一。 规则 这是代码高尔夫球。每种语言中的最低字节获胜。适用标准规则/漏洞。 测试用例 表示为行数组。 韦尔: [[1]] [[1,1],[0,1]] [[1,0,1,0,0],[0,1,0,1,0],[0,0,1,0,1],[0,0,0,1,0],[0,0,0,0,1]] [[1,0,0,1,0,0,0,0,0],[0,1,0,0,1,0,0,0,0],[0,0,1,0,0,1,0,0,0],[0,0,0,1,0,0,1,0,0],[0,0,0,0,1,0,0,1,0],[0,0,0,0,0,1,0,0,1],[0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]] [[1,0,0,0,1,0,0,0,0],[0,1,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0,0],[0,0,0,0,0,1,0,1,0],[0,0,0,0,0,0,1,0,1],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]] 非韦尔: …

13
是Pascal Prime吗?
众所周知,奇数质数会在Pascal三角形中出现两次。但是,并非所有在Pascal三角形中正好出现两次的数字都是质数。我们称这些数字为Pascal素数。 帕斯卡素数是在帕斯卡三角形中正好出现两次的复合数。前几个Pascal素数是 4, 8, 9, 12, 14, 16, 18, ... 您的挑战是取一个正整数n作为输入,并输出true或false,这取决于n是否为Pascal素数。这是代码高尔夫球,所以最短的程序胜出!

2
盾墙
历史背景 盾墙是一种战术战争编队,其历史可以追溯到至少公元前2500年。它由战士与同伴的盾牌重叠构成“墙”组成。这种战术的吸引力来自这样一个事实,即即使是最不熟练的战士,只要拥有盾牌和武器,他们都可以在墙上战斗。由于墙的接近,几乎没有移动的空间,战斗通常变成用锋利的武器进行的激烈比赛。 挑战 您的任务是创建一个程序或函数,以两个战士的数组/列表/向量为输入,来决定战斗的结果。列表将代表单线的屏蔽墙,并且将遵循特定的符号: 维京人: 北欧勇士们发动了激烈的战斗。在8世纪后期到11世纪中叶,丹麦维京人入侵了不列颠王国,寻找财富和可耕地。出于挑战的目的,这些是维京人的战士: 该JARL:通常发现从壁的中心率众,jarls是海盗成群的领导人。受到15点伤害而死亡,每回合造成2点伤害。 该Berserker:虽然幻想,极大地扭曲了狂战士的形象,这些战士被称为精神恍惚般狂暴战斗没有任何一种比他们的盾等保护的。造成6点伤害死亡,每回合造成3点伤害。 该Chieftain:酋长是富人谁在他们的服务了自由人。他们通常会在战斗中赢得巨大的荣耀和财富。造成10点伤害死亡,每回合造成2点伤害。 Free Men:担任酋长的战士。他们发誓要为自己的主人而战直到死亡。遭受8点伤害,每回合造成1点伤害。 该Skald:Skalds,通常译为吟游诗人,是谁雇用了写诗,关于北欧勇士的事迹故事或歌曲的自由人。受到8点伤害死亡,并为每位相邻的战士造成1点额外伤害。骨不会造成伤害。以此方式,战士不能获得超过1点的额外伤害。 撒克逊人: 撒克逊人是在公元5世纪罗马帝国灭亡后从欧洲大陆来到英国定居的。出于此挑战的目的,有撒克逊人的战士: 该EARL:Ealdormen,通常被称为伯爵,是较高的贵族成员。他们通常占有很大的土地,并且有成百上千的宣誓就职者。遭受20点伤害,每回合造成1点伤害。 该K夜:由于缺乏一个更好的词中,骑士是谁拥有一些土地未成年贵族。在大多数情况下,骑士是伯爵的宣誓仆人。造成10点伤害死亡,每回合造成2点伤害。 该Warrior:常见的男人,通常是轻微的贵族没有土地或农民谁担任一个骑士。当与骑士或伯爵相邻时,战士获得+1伤害加成。受到8点伤害,每回合造成2点伤害。 在F长江三角洲地区:该Fyrd是民兵般的自由人,通常是贫困农民,谁愿意带任何武器(或武器状农具)他们在墙上打组。遭受5点伤害,每回合造成1点伤害。 最P古老:祭司在撒克逊人早期的文化中被高度重视,是上帝圣言的先驱。牧师死亡时受到15点伤害,并防止相邻的战士遭受1点伤害。牧师不会造成伤害。牧师对战士的伤害不能超过1。 墙 墙壁在其中心彼此相遇。每个回合中,每个战士都会直接对其前方的战士造成伤害,或者,如果前面没有活着的战士,则对角相邻的活着的战士会留下最少的生命值。如果有领带,请选择靠近墙壁边缘的战士。 例: Vikings [M,M,M,B,B,C,J,C,B,B,M,M,M] [F,F,F,W,W,K,E,K,W,W,F,F,F] Saxons To make matters easier, let's convert these walls into numbers: Round 0: M M M B B C J C B B M M …

30
我是高尔夫球爱好者吗?
定义和规则 甲golfy阵列是一个整数数组,其中每个元素是高于或等于所有先前元素的算术平均值。您的任务是确定作为输入给定的正整数数组是否适合。 您无需处理空白列表。 默认存在漏洞。 适用标准输入和输出方法。 您可以选择任何两个不同的非空值。它们必须是一致的,并且必须遵守所有其他决策问题规则。这是代码高尔夫球,每种语言中最短的代码胜出! 测试案例与范例 例如以下数组: [1, 4, 3, 8, 6] 是一个高尔夫球状数组,因为每个项都高于其前面的算术平均值。让我们逐步解决: 数字->前置元素->平均->是否遵循规则? 1-> []-> 0.0-> 1≥0.0(真) 4-> [1]-> 1.0-> 4≥1.0(真) 3-> [1,4]-> 2.5-> 3≥2.5(真) 8-> [1,4,3]-> 2.(6)-> 8≥2.(6)(真) 6-> [1,4,3,8]-> 4.0-> 6≥4.0(真) 所有元素都符合条件,因此这是一个高尔夫球阵列。请注意,就本挑战而言,我们将假定一个空列表([])的平均值为0。 更多测试用例: 输入->输出 [3]->正确 [2,12]->是 [1,4,3,8,6]->是 [1、2、3、4、5]->是 [6,6,6,6,6]->是 [3,2]->错误 [4、5、6、4]->错误 [4,2,1,5,7]->错误 [45,45,46,43]->错误 [32,9,15,19,10]->错误 请注意,这是拼图1从CodeGolf-黑客马拉松,也张贴在无政府状态高尔夫(即一个被打破) - …

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.