Questions tagged «set-theory»

集合论是研究无序对象集合的数学分支。使用此标签的挑战将涉及对集合的操纵或分析。

5
功率编程:O(1 ^ N),O(N ^ 1),O(2 ^ N),O(N ^ 2)合而为一
根据程序的运行方式,编写出表现出四种常见的O大 时间复杂度的程序(或函数)。无论采用哪种形式,都需要一个正整数N,您可以假设它小于2 31。 当程序以其原始形式运行时,它应该具有恒定的复杂性。也就是说,复杂度应为Θ(1)或等效地为Θ(1 ^ N)。 当程序反向运行时,它应该具有线性复杂度。也就是说,复杂度应为Θ(N)或等效地为Θ(N ^ 1)。 (这是有道理的,因为N^1被1^N逆转。) 当程序被加倍,即,级联到本身,并运行它应具有指数复杂性,特别是2 Ñ。也就是说,复杂度应为Θ(2 ^ N)。 (这是有道理的,因为2在2^N是双1中1^N)。 当程序被加倍执行并反转并运行时,它应具有多项式复杂度,尤其是N 2。也就是说,复杂度应为Θ(N ^ 2)。 (这是有道理的,因为N^2被2^N逆转。) 这四种情况是您唯一需要处理的情况。 请注意,为精确起见,我使用大theta(Θ)表示法而不是大O,因为您的程序的运行时必须在上下两方面受所需复杂度的限制。否则,仅在O(1)中编写一个函数就可以满足所有四个点。了解这里的细微差别不是太重要。主要是,如果您的程序针对某个常数k执行k * f(N)运算,则很有可能为Θ(f(N))。 例 如果原始程序是 ABCDE 那么运行它应该花费恒定的时间。也就是说,无论输入N是1还是2147483647(2 31 -1)或两者之间的任何值,它都应在大致相同的时间内终止。 程序的反向版本 EDCBA 应该以N为单位花费线性时间。也就是说,终止所花费的时间应与N大致成比例。因此N = 1花费的时间最少,N = 2147483647花费的时间最多。 该程序的两倍版本 ABCDEABCDE 以N表示,应该花费2到N的时间。也就是说,终止所花费的时间应该大致与2 N成正比。因此,如果N = 1在大约一秒钟内终止,则N = 60将花费比宇宙年龄更长的时间。(不,您不必测试。) 程序的加倍和反转版本 EDCBAEDCBA 应该花费以N为单位的平方时间。也就是说,终止所花费的时间应与N * N大致成比例。因此,如果N …

19
我的馅饼被平分了吗?
编写一个包含正整数的非空列表的程序或函数。您可能会假设它是以合理方便的格式输入的,例如"1 2 3 4"或[1, 2, 3, 4]。 输入列表中的数字表示完整饼图的切片,其中每个切片的大小与其对应的数字成比例,并且所有切片均按给定的顺序排列在图表周围。 例如,饼图为1 2 3 4: 您的代码必须回答的问题是:饼图是否一分为二?也就是说,从圆的一侧到另一侧是否存在一条完美的直线,将其对称地一分为二? 你需要输出truthy值,如果有至少一个平分线和输出falsy如果有没有价值。 在该1 2 3 4示例中,之间有一个等分线4 1,2 3因此输出将是真实的。 但是对于输入而言1 2 3 4 5,没有平分线,因此输出将是虚假的: 其他例子 以其他方式排列数字可能会消除等分线。 例如2 1 3 4→虚假: 如果输入列表中只有一个数字,则饼图不会一分为二。 例如10→虚假: 可能有多个平分线。只要大于零,输出就是真实的。 例如6 6 12 12 12 11 1 12→真实:(这里有3个等分线) 即使平分在视觉上不明显,也可能存在。 例如1000000 1000001→虚假: 例如1000000 1000001 1→真实: (感谢nces.ed.gov生成饼图。) 测试用例 …
43 code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

30
它是无和集吗?
如果集合中没有两个(不一定是不同的)元素在一起,则该集合是不求和的。 例如,{1, 5, 7}是无和的,因为所有成员都是奇数,并且两个奇数加在一起时总是偶数。在另一方面,{2, 4, 9, 13}不是免费求和,如任一2 + 2 = 4或4 + 9 = 13一起添加到该组的一个成员。 编写一个将集合作为输入的程序或函数,如果集合不加和,则输出True值,否则输出Falsy。 例子: Sum-free: {} {4} {1, 5, 7} {16, 1, 4, 9} Not sum-free: {0} {1, 4, 5, 7} {3, 0} {16, 1, 4, 8}

18
统一标识符
介绍 根据定义,唯一标识符应该是唯一的。具有多个相同的标识符会导致检索意外数据。但是,由于数据是同时从多个来源到达的,因此很难确保唯一性。编写一个函数以统一标识符列表。 这可能是我写的最糟糕的拼图绒毛,但您明白了。 要求 给定一个零个或多个正整数的列表,请对每个数字从头到尾应用以下规则: 如果数字是同类数字中的第一个,请保留该数字。 如果以前遇到过该数字,请用在整个输入列表或任何现有输出中未找到的最低正整数替换它。 对于解决方案: 解决方案可以是程序或功能。 输入可以是字符串,数组,作为参数传递的输入或键盘输入。 输出可以是字符串,数组或打印到屏幕上。 输出列表中的所有数字都是唯一的。 假设条件 输入列表是干净的。它仅包含正整数。 正整数的范围是1到2 31 -1。 程序变量的可用内存少于256 MB。(基本上,不允许使用2,147,483,648个元素的数组。) 测试用例 Input: empty Output: empty Input: 5 Output: 5 Input: 1, 4, 2, 5, 3, 6 Output: 1, 4, 2, 5, 3, 6 Input: 3, 3, 3, 3, 3, 3 Output: …

20
法鲁洗牌数组
阿法鲁洗牌是经常使用的魔术到“洗牌”甲板的技术。要执行Faro随机播放,您首先将卡座切成相等的两半,然后将这两个半插入。例如 [1 2 3 4 5 6 7 8] 法鲁洗牌是 [1 5 2 6 3 7 4 8] 可以重复多次。有趣的是,如果重复此次数足够多,您将总是回到原始数组。例如: [1 2 3 4 5 6 7 8] [1 5 2 6 3 7 4 8] [1 3 5 7 2 4 6 8] [1 2 3 4 5 6 7 …
31 code-golf  permutations  card-games  code-golf  graphical-output  random  code-golf  image-processing  color  code-golf  primes  code-golf  math  arithmetic  combinatorics  decision-problem  code-golf  sequence  number-theory  binary  code-golf  number-theory  set-theory  code-golf  hashing  code-golf  game  card-games  code-golf  ascii-art  code-golf  arithmetic  array-manipulation  jelly  code-golf  string  array-manipulation  code-golf  sorting  code-challenge  code-golf  number  date  binary  code-golf  arithmetic  code-golf  math  number  linear-algebra  polynomials  code-golf  ascii-art  code-golf  grid  decision-problem  code-golf  string  combinatorics  code-golf  string  kolmogorov-complexity  arithmetic  date  code-golf  number  data-structures  code-golf  ascii-art  kolmogorov-complexity  code-golf  string  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation 

30
像ABC一样容易
输入值 包含每个字母的最多一个字符串A,B和C。它们可以按任何顺序排列。空字符串是有效输入。 注意:此挑战的先前版本使用字母LEJ代替,ABC如果需要,它们仍可以使用。 输出量 的字符串A,B,C字母不存在输入。它们可以按任何顺序排列。 如果输出为空字符串,则简单地不给出任何输出是有效的,如果这对您的实现有意义。(例如,您不需要实际调用print一个空字符串。) 例子 如果输入是B,则输出应该要么是CA或者AC因为A与C不存在于输入端。 如果输入为空字符串,则输出应为ABC或任何排列,因为输入中的三个字母均不存在。 如果输入为,CAB则输出应为空字符串,因为所有三个字母均出现在输入中。 测试用例 输入案例很少,我们可以列举所有这些案例: in -> out1 | out2 | out3 | ... ABC -> "" ACB -> "" BCA -> "" BAC -> "" CAB -> "" CBA -> "" AB -> C AC -> B BC -> A BA -> …

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

11
这个集合代表自然数吗?
在集合理论中,自然数NN={0,1,2,3,...}\mathbb{N} = \{0, 1, 2, 3, ...\}通常被编码为纯集,即仅包含空集或其他纯集的集。但是,并非所有的纯集都代表自然数。挑战在于确定给定的纯集是否表示自然数的编码。 自然数的编码以下列方式1起作用: 零是空集:Set(0)={} Set(0) = \{\} 对于许多n>0n > 0:Set(n)=Set(n−1)∪{Set(n−1)} Set(n) = Set(n-1) \cup \{Set(n-1)\} 因此,前几个自然数的编码是 0⇝{} 0 \leadsto \{\} 1⇝{0}⇝{{}} 1 \leadsto \{0\} \leadsto \{\{\}\} 2⇝{0,1}⇝{{},{{}}} 2 \leadsto \{0,1\} \leadsto \{\{\},\{\{\}\}\} 3⇝{0,1,2}⇝{{},{{}},{{},{{}}}} 3 \leadsto \{0,1,2\} \leadsto \{\{\},\{\{\}\},\{\{\},\{\{\}\}\}\} 4⇝{0,1,2,3}⇝{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}} 4 \leadsto \{0,1,2,3\} \leadsto \{\{\},\{\{\}\},\{\{\},\{\{\}\}\},\{\{\},\{\{\}\},\{\{\},\{\{\}\}\}\}\} 任务 …

9
高尔夫维恩图生成器
高尔夫维恩图生成器 为了恰当地庆祝约翰·维恩诞辰180周年,今天的任务是创建一个输出维恩图的程序! 输入: 一个正整数N,它将定义图中显示的数字范围(从零到N)和三组正整数。 输出: 3集维恩图,显示从0到0的所有整数,N并通过在图的适当区域中显示它们(类似于此整数)来显示集合之间的关系。 笔记 使用stdin(或与您的语言等效的任何语言)获取值。 您可以定义集合和集合的输入格式N(以逗号,斜杠或最适合您的形式分隔)。 未出现在任何集合中但在指定范围内的数字必须出现在图表上,而不是在任何区域内。 这些集无需命名。 输出可以是图形或ascii-art。 该图可以具有任何形状,只要边界可以清楚地区分即可(例如,如果您选择ASCII艺术作品,则必须使用+(或类似符号)来跨越边界)。 区域可能但不必着色。 禁止生成Venn图的任何内置函数或第三方库。 适用标准漏洞。 这是code-golf,因此以字节为单位的最短代码胜出。

8
验证拓扑
挑战 给定T有限集的子集S={1,2,3,...,n},确定是否T为拓扑。 说明 某个集合的幂 P(S)集S是的所有子集的集合S。一些例子: S = {}, P(S) = {{}} S = {1}, P(S) = {{}, {1}} S = {1,2}, P(S) = {{}, {1}, {2}, {1,2}} S = {1,2,3}, P(S) = {{}, {1}, {2}, {3}, {1,2}, {1,3}, {2,3}, {1,2,3}} 甲拓扑 T上的集S的一个子集P(S)与以下属性: {}在T和S在T 如果A和B在,T那么他们的交集A ∩ B 如果A和B在,T那么他们的联合也是A ∪ B* *这个定义不是很正确,但是对于有限集却是正确的,对于这个挑战的目的就足够了。实际的公理也将允许无限的并集,但这与有限的情况无关。 …

22
递归字符串替换
任务 编写一个程序或函数,给出给定的三个字符串A, B, C会生成一个输出字符串,其中Bin的每个实例A都已用递归替换C。递归替换表示重复替换,其中在每一步中Bin的所有不重叠实例A(从左到右贪婪地选择)都替换为,C直到B不再包含在中A。 输入输出 您可以对I / O使用任何默认方法。 字符串将仅包含可打印的ASCII字符(并且可以包含任何一个)。 B永远不会是一个空字符串,而A并且C可能是。 字符串应被视为纯文本,例如,您不能将其B视为Regex模式。 输入的某些组合永远不会终止。在这种情况下,您的程序可以执行任何操作。 测试用例 这些格式为: A/B/C\nOutput Hello, world!/world!/PPCG Hello, PPCG Uppercase is up/up/down Uppercase is down ababababa/aba/ccc cccbcccba delete/e/{empty string} dlt {empty string}/no/effect {empty string} llllrrrr/lr/rl rrrrllll +-+-+-+/+-+/+ + ababababa/aba/bada badabbadbada abaaba/aba/ab abb ((())())())/()/{empty string} ) 不会终止的示例: grow/ow/oow loop/lo/lo
25 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 

21
使用集合论的字符串长度
摘自Wikipedia 对自然数的集合理论定义 自然数的集合N定义为包含0且在由S(n)= n∪{n}定义的后继函数S下闭合的最小集合。 用这种方式定义的前几个数字是0 = {},1 = {0} = {{}},2 = {0,1} = {{},{{}}},3 = {0,1,2 } = {{},{{}},{{},{{}}}}。 使用自然数的此定义计算字符串的长度。 输入 任意长度的a-zA-Z中的字符串 以设置符号输出字符串的长度,不带分隔符 例子 输入 空字符串 输出 {} 输入 一个 输出 {{}} 输入 aaaa 输出 {{} {{}} {{} {{}}} {{} {{}} {{} {{}}}}} 为了提高可读性,输出带有分隔符的“ aaaa”是 { {} {{}} {{} …

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 

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

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.