如何计算名称列表中的每个名称重复了多少次?

How can I count how many times each of the names in a names list is repeated?

我正在尝试解决pseint伪代码程序中的算法问题,问题如下:

如何计算名称列表中的每个名称重复了多少次?有人知道怎么做吗?

我知道如何针对 1 个单一值执行此操作(只要我知道),但我无法确定如何根据我正在寻找的内容调整它

嗯,我有一个想法。

首先你获取列表的一个元素并迭代列表搜索一个元素等于

第二次当一个元素匹配然后计数并且到达列表末尾时,所以删除这个元素并重新开始

所以最后你将计算列表中的所有元素。

DIVIDE ET IMPERA 你的问题:)

  1. 在您的列表中找到不同的名字

  2. 对于上一步的每个元素,计算它在列表中出现的次数。

在您的列表中找到不同的名称:

//create a new array and suppose it has as many elements as the given input:
let ris = new array[input.length]

//define an index for this array.
let k = 0
//in the rest of the algorithm let always k be the actual length of ris and the next possible index to use

//let's start iterating over the input list
for (i = 0; i<input.length; i++) {
    //let's check if input[i] it's already present in ris
    //we can look just for the first k elements
    let addCurrentName = true
    for (j = 0; j<k; j++) {
        if (input[i] == ris[j]) addCurrentName = false;
    }
    if (addCurrentName) {
         //we go inside this if only if in the previous search we found nothing
         ris[k] = input[i];
         k++;
    }
}

//now the first k positions of ris contain the distinct values of input

let ris2 = new array[k] //now we are sizing the result exactly
for (i = 0; i<k; i++) {
    ris2[i] = ris[i] //we are just creating the result of the right dimension and copying values into it
}

return ris2;

你说你已经知道如何计算一个元素在数组中出现的次数,所以剩下的就交给你了,你只需要对所有不同的值进行计算即可。

关于如何计算唯一名称在名称重复的列中出现的次数这一问题,我无法理解之前的任何一个答案。

[虽然这与 OP 最初陈述的问题大致相同,但机器人已将其标记为不清楚。因此,为了清楚起见,例如,您有一个列:

约翰

杰克

玛丽

杰克

约翰

约翰

约翰

您想return一个结果:

约翰福音 4

杰克 2

玛丽 1

这就是“计算唯一名称在重复名称的列中出现的次数”的含义。每个名称后跟其出现的频率。我希望机器人这次能得到它。]

我在这里找到了比上面那些更简单的解决方案: https://community.spiceworks.com/topic/605190-count-the-number-of-times-a-value-appears-in-a-column-using-ms-access 这取决于向简单查询设计中添加一列。

它确实对我有用。

这里是原图的截图post: