集合(数学)和数组(编程)之间的关系

我们在数学中学习的“集合”主题在计算机科学中得到了广泛的应用。 对于计算机编程来说尤其如此。
计算机编程中的数组是一种数据结构,具有带有索引的项目列表。 而“数学中的集合”是一组定义明确的独特项目的列表。
数组基本上是带有索引的集合。
相似之处:
- 两者都是数据结构
- 两者都有一个项目清单
- 两者都有可以执行的操作,例如联合,相交等
差异:
套装:
- 不允许重复的物品
- 它没有包含项的索引
- 不能取走特定项目,必须逐个遍历,直到找到或找不到为止
数组:
- 它允许重复的项目
- 它包含的每个项目都有索引
- 可以使用给定索引获取特定项目
此外,为了显示在集合和数组中执行的操作的相似性,我将使用PHP数组和提供的函数的示例。
假设我们有三个数组$ u,$ a和$ b。 $ u是同时包含$ a和$ b的通用数组。
$u = [1,2,3,4,5,6,7,8,9]; $a = [1,2,3]; $b = [1,2,3,4,5];
1.联盟
$ a和$ b的并集可以如下所示:
$a_union_b = $a + $b;
echo 'a_union_b = [' . implode(',', $a_union_b) . '] <br>';
如果运行代码,则会得到:
a_union_b = [1,2,3,4,5]
2.交叉路口
同样,$ a和$ b的交集:
$a_intersection_b = array_intersect($a, $b);
echo 'a_intersection_b = [' . implode(',', $a_intersection_b) . '] <br>';
将为我们提供以下输出:
a_intersection_b = [1,2,3]
3.差异(AB)
$a_diff_b = array_diff($a, $b);
echo 'a_diff_b = [' . implode(',', $a_diff_b) . '] <br>';
给出输出:
a_diff_b = []
4.差异(BA)
$b_diff_a = array_diff($b, $a);
echo 'b_diff_a = [' . implode(',', $b_diff_a) . '] <br>';
给出输出:
b_diff_a = [4,5]
5.补语
$a_complement = array_diff($u, $a);
echo 'a_complement = [' . implode(',', $a_complement) . '] <br>';
给出输出:
a_complement = [4,5,6,7,8,9]
6.三角洲B
$a_delta_b = $a_diff_b + $b_diff_a;
echo 'a_delta_b = [' . implode(',', $a_delta_b) . '] <br>';
给出输出:
a_delta_b = [4,5]
因此,我们可以看到它们在许多方面都是相似的,并且也存在一些差异。
感谢您阅读本文,希望您喜欢它。 如果发现有帮助,请别忘了拍手和分享:)
您可能感兴趣的其他系列:

From: https://hackernoon.com/relation-between-sets-mathematics-and-arrays-programming-e2b2035307f3