Vector 向量的分组值

Vector 向量的分组值,vector,grouping,Vector,Grouping,假设-我有两个向量: a numbers=[14 14 2 25 25 14 14 14 2 23 23 23]: b frequency_of_the_numbers_above=[2 1 2 3 1 3]; c new_numbers=[14 14 14 14 14 2 2 2 2 25 25 25 25 25 25 25 14 14 14 14 14 2 2 2 2 23 23 23 23 ]; b描述向量a中的值出现的频率。例如:数字14出现两次,这就是为什么b中的

假设-我有两个向量:

a    numbers=[14 14 2 25 25 14 14 14 2 23 23 23]:
b    frequency_of_the_numbers_above=[2 1 2 3 1 3];

c    new_numbers=[14 14 14 14 14 2 2 2 2 25 25 25 25 25 25 25 14 14 14 14 14 2 2 2 2 23 23 23 23 ];
b描述向量a中的值出现的频率。例如:数字14出现两次,这就是为什么b中的第一个数字是2,向量a中的数字2出现一次,这就是为什么向量b中的第二个数字是1等等

我现在想要的是将向量b调整为向量c,这样结果应该如下所示:

new_numbers[14 14 14 14 14 2 2 2 2 25 25 25 25 25 25 25 14 14 14 14 14 2 2 2 2 23 23 23 23 ];
frequency_numbers_for_new_numbers=[2 2 2 2 1 1 1 1 2 2 2 2 2 2 2 3 3 3 3 3 1 1 1 1 3 3 3 3];

你的问题似乎与你发布的向量不符。b似乎是一个给定数字中有多少出现在a中。因为a中有5个14。你的结果似乎是,b中重复的数字,对于c中元素的数字,这就是你想要的吗?a和c是否总是以相同的顺序包含相同的数字

我将编写代码来实现我所描述的(java)

int索引=0;
int currentVal=c[0];
int[]结果=新的int[c.length];
for(int i=0;i
您的问题似乎与您发布的向量不符。b似乎是一个给定数字中有多少出现在a中。因为a中有5个
14s
。你的结果似乎是,b中重复的数字,对于c中元素的数字,这就是你想要的吗?a和c总是以相同的顺序包含相同的数字吗?你能给向量更多的描述性名称吗?给你的对象命名好会让问题更清晰,也会让任何解决方案更容易遵循。不,我在a和b中有一个模式,其中b的第一个数字描述了a中相邻a的相同值的数量。这意味着两个14s,一个2,两个25s等等。现在我想得到2的值,它代表14,与c中的次数完全相同-这意味着c中的5个14s,c中的5个2s等等-c中的5个14s等等-我希望我能解释我自己。。。。
int index = 0;
int currentVal = c[0];
int[] result = new int[c.length];

for(int i = 0; i < result.length; i++)  {
    if(c[i] != currentVal) {
        index++; //if the number changed go to the next index for b
        currentVal = c[i]; //update the currentVal to the new value
    }
    result[i] = b[index]; //copy the value from b into the result vector
}