离散化

离散化是什么呢?

百度百科给的资料:https://baike.baidu.com/item/%E7%A6%BB%E6%95%A3%E5%8C%96/10501557

 

但其实通俗一点就是给定一个序列,将其转化为每个元素在序列中的序数的绝对值.

再说白一点就是看序列中的每一个元素大小在序列中排第几.

例如:1 66 75 23 55

离散化后:1 4 5 2 3

模板:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>

using namespace std;

int a[100];
int b[100];
void Discretization() {//离散化 
    sort(b+1,b+10+1);
    unique(b+1,b+1+10) - (b + 1);
    for(int i = 1;i <= 10; i++) a[i] = lower_bound(b+1,b+1+10,a[i])-b;
}
int main() {
    for(int i = 1;i <= 10; i++) { 
        cin >> b[i];
        a[i] = b[i];
    } 
    Discretization();
    for(int i = 1;i <= 10; i++)
        cout << a[i] << ' ';//离散化后的数组 
    return 0;
} 

 

 

 

 

 

posted @ 2019-05-11 21:03  Mr^Simon  阅读(171)  评论(1编辑  收藏  举报