阅读以下说明和流程图,填补流程空中的空缺(1)~(5)将解答填入答题纸的对应栏内

免费题库2022-08-02  41

问题 阅读以下说明和流程图,填补流程空中的空缺(1)~(5)将解答填入答题纸的对应栏内。【说明】两个包含有限个元素的非空集合 A、B  的相似度定义为 |A∩B|/|A∪B|,即它们的交集大小(元素个数)与并集大小之比。以下的流程图计算两个非空整数集合(以数组表示)的交集和井集,并计算其相似度。己知整数组 A[1:m]和 B[1:n]分别存储了集合 A 和 B 的元素(每个集合中包含的元素各不相同),其交集存放于数组C[1:s],并集存放于数组D[1:t] ,集合A 和 B 的相似度存放于 SIM。例如,假设 A={ 1, 2 ,3,4} ,B={ 1, 4 ,5,6},则C={1, 4} ,D={1, 2 ,3 ,4 ,5, 6},A 与 B 的相似度 SIM=1/3。【流程图】

选项

答案

解析 (1)s             (2)t      (3)c[s]           (4)D[t] (5)s/t

本题考查程序处理流程图的设计能力。
首先我们来理解两个有限集合的相似度自含义。两个包含有限个元素的非空集合 A、B 的相似度定义为它们的交集大小(元素个数)与并集大小之比。如果两集合完全相等,则相似度必然为 1 (100%); 如果两集合完全X同(没有公共元素),则相似度必然为0; 如果集合A 中有一半元素就是集合B 的全部元素,而另一半元素不属于集合 B,则这两 个集合的相似度为 0.5(50%)。因此,这个定义符合人们的常理性认识。
在大数据应用中,经常要将很多有限集边行分类。例如,每天都有大量的新闻稿。
为了方便用户检索,需要将新闻稿分类。用付么标准来分类呢?每一篇新闻稿可以用其 中所有的关键词来表征。这些关键词的集合勒为这篇新闻稿的特征向量。两篇新闻稿是 否属于同一类,依赖于它们的关键词集合是否具有较高的相似度(公共关键词个数除以 总关键词个数)。搜索引擎可以将相似度超过一定水平的新闻稿作为同一类。从而,可以 将每天的新闻稿进行分类,就可以按用户的需要将某些类的新闻稿推送给相关的用户。
本题中的集合用整数组表示,因此,需要规定同一数组中的元素各不相同(集合中的元素是各不相同的)。题中,整数组 A[1:m] 阳 B[l:n]分别存储了集合 A 和 B 的元素。流程图的目标是将 A 、B 中相同的元素存放入数组C[ 1:s]  (共s 个元素),并将 A 、B 中 的所有元素(相同元素只取一次)存放入数组  D[1:t]   (共t 个元素),最后再计算集合 A 和 B 相似度的。
流程图中的第一步显然是将数组 A 中的全部元素放入数组 D 中。随后,只需要对数 组 B 中的每个元素进行判断,凡与数组 A 中某个元素相同时,就将其存入数组 C;  否则就续存入数组 D (注意,数组 D 中已有 m 个元素)。这需要对 j (遍历数组 B) 与 i (遍历数组 A) 进行两重循环。判断框 B[j]=Af lG立时, B[j]应存入数组 C; 否则应继续 i 循环,直到循环结束仍没有相等情况出现时, j 先应将 B[j]存入数组 D。存入数组 C 之前, 需要将其下标 s 增 1; 存入数组 D 之前,需要将其下标 t 增 1。因此,初始时,应当给j 赋 0,使数组C 的存数从C[1]开始。从而,()处应填 s,(3)处应填c[s]。而数组D 是在已有 m 个元素后续存,所以,初始时,数 fi D 的下标 t 应当是 m ,续存是从D[m+1] 开始的。因此,   (2)   处应填 t ,(的处应填D[]。
两重循环结束后,就要计算相似度的,将其赋予 SIM,因此(5) 处应填的。
转载请注明原文地址:https://tihaiku.com/congyezige/2426859.html

最新回复(0)