离散化算法简介

news2024/11/29 4:38:57

【离散化简介】
离散化是一种数据处理的技巧,本质上可以看成是一种“哈希”,其保证数据在哈希以后仍然保持原来的“全/偏序”关系。用来离散化的可以是大整数浮点数字符串等等。
★ 离散化的本质,是映射。原理是将间隔很大的元素,映射到相邻的位置上,从而减少对空间的需求,也减少计算量。

【离散化步骤】
简单而言,常用的离散化算法步骤为“
提取、排序、去重、映射”。
(1)排序+去重

//sort & de-weight for vector
vector<int> v;
sort(v.begin(),v.end());
v.erase(unique(v.begin(),v.end()), v.end());

(2)映射(离散化)

int find(int x) { //discretization
	int le=0;
	int ri=alls.size()-1;
	while(le<ri) {
		int mid=(le+ri)>>1;
		if(alls[mid]>=x) ri=mid;
		else le=mid+1;
	}
	return ri+1;
}

【离散化示例】
例如,一块宣传栏,横向长度的刻度标记为1~10,贴4张不同颜色的与宣传栏等宽的海报,且后者覆盖前者,问最后能看见几种颜色的海报。其中,4张不同颜色的海报对应于宣传栏上的刻度分别为 [1, 3]、[2, 5]、[3, 8]、[3, 10]。离散化步骤如下:
(1)提取:提取4张海报的8个端点 1 3 2 5 3 8 3 10
(2)排序:从小到大排序4张海报的8个端点,得:1 2 3 3 3 5 8 10
(3)去重:对 1 2 3 3 3 5 8 10 去重,得
1 2 3 5 8 10
(4)映射:将原来的8个端点,映射到去重后的6个端点上

则,原来的4个区间 [1, 3]、[2, 5]、[3, 8]、[3, 10] 将映射为 [1, 3]、[2, 4]、[3, 5]、[3, 6]。显然,宣传栏的长度从10压缩到6。




【参考文献】

https://oi-wiki.org/misc/discrete/
https://blog.csdn.net/m0_67717626/article/details/136156476


 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2227348.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

毫米波技术基础

什么是毫米波&#xff1f; 顾名思义&#xff0c;毫米波是波长 (λ) 约为 1 毫米&#xff08;更准确地说是 1 至 10 毫米&#xff09;的电磁波。使用方程式f c /λ 将该波长转换为频率&#xff0c;其中c是光速 (3 x 10 8 m/s)&#xff0c;得出 30-300 GHz 的频率范围。国际电信…

【STM32】内存管理

首先问个问题&#xff0c;你知道如何在LCD上显示SD卡文件浏览&#xff1f;-----需要读取所有文件名到内存&#xff0c;然后才能显示到LCD上。 一般的方法&#xff1a;是定义一个数组来存储文件名 1&#xff1a;需要知道最大文件名的长度 2&#xff1a;需要知道文件的个数。1…

OpenCV图像处理方法:腐蚀操作

腐蚀操作 前提 图像数据为二值的&#xff08;黑/白&#xff09; 作用 去掉图片中字上的毛刺 显示图片 读取一个图像文件&#xff0c;并在一个窗口中显示它。用户可以查看这个图像&#xff0c;直到按下任意键&#xff0c;然后程序会关闭显示图像的窗口 # cv2是OpenCV库的P…

使用Python中的jieba库进行简单情感分析

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;情感分析是一项重要的任务&#xff0c;它可以帮助我们理解文本背后的情感倾向。本文将通过一个简单的例子来介绍如何使用Python的jieba库对中文文本进行基本的情感分析。 1. 环境准备 首先&#xff0c;确保已经安装…

图像分割从基础到进阶:阈值化、K-means和Mean-Shift算法的应用

图像分割是计算机视觉中的一项关键技术&#xff0c;用来将图像划分为若干个 有意义 的区域&#xff0c;以便后续的图像处理和分析工作。根据任务的不同&#xff0c;图像分割可以进一步细分为语义分割、实例分割和全景分割&#xff1a; 语义分割 (Semantic Segmentation) 对图像…

SQL进阶技巧:如何求组内排除当前行的移动平均值?

目录 0 需求描述 2 数据准备 3 问题分析 4 小结 0 需求描述 -- 按照 日期,省份,等级 分组 求分数的平均值;但是需要剔除当前行的数据 2 数据准备 create table avgtest as (select 2024-10-24 as cdate, 广东 as province,深圳 as city, 2 as level, 200 as scoreunio…

后台管理系统的通用权限解决方案(六)SpringBoot整合Logback实现日志记录

1 Logback介绍 1.1 Logback的组件 由上图可知&#xff0c;Logback和Log4j都是slf4j规范的具体实现。在程序中直接调用Logback的API其实都是slf4j规范定义好的API&#xff0c;其底层则是真正的日志实现组件—Logback或者Log4j。 Logback构建在三个主要的类上&#xff1a;Logge…

厨艺爱好者的在线互动平台:Spring Boot实现

摘 要 使用旧方法对厨艺交流信息进行系统化管理已经不再让人们信赖了&#xff0c;把现在的网络信息技术运用在厨艺交流信息的管理上面可以解决许多信息管理上面的难题&#xff0c;比如处理数据时间很长&#xff0c;数据存在错误不能及时纠正等问题。 这次开发的厨艺交流平台功能…

面试域——技术面试准备

摘要 来到技术面试这环节有两种情况&#xff0c;其一&#xff1a;这场技术面试可能就是一个面试官KPI面试&#xff08;就是面试工作量&#xff0c;这个面试你是不可能过。&#xff09;如今的就业环境下&#xff0c;人力资源部门也是有考核指标。如果遇到这样的面试你就放平心态…

2024年【焊工(中级)】最新解析及焊工(中级)考试总结

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 焊工&#xff08;中级&#xff09;最新解析参考答案及焊工&#xff08;中级&#xff09;考试试题解析是安全生产模拟考试一点通题库老师及焊工&#xff08;中级&#xff09;操作证已考过的学员汇总&#xff0c;相对有…

VsCode | 修改内置字体为JetBrains Mono NL

文章目录 一、下载JetBrains Mono NL字体二、VsCode进行字体的设置 一、下载JetBrains Mono NL字体 字体下载 下载完成以后解压找到JetBrainsMono-2.304\fonts\ttf文件夹下&#xff0c;全选鼠标右键点安装即可。 注意&#xff1a;一定要全部安装&#xff0c;否则字体样式可…

【微服务】Nacos 注册中心

<!-- nacos 依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${nacos.version}</version><type>pom</type><scope>import&l…

Wasserstein Generative Adversarial Networks

Abstract 我们引入了一种名为 WGAN 的新算法&#xff0c;它是传统 GAN 训练的替代方案。 在这个新模型中&#xff0c;我们表明我们可以提高学习的稳定性&#xff0c;摆脱模式崩溃等问题&#xff0c;并提供对调试和超参数搜索有用的有意义的学习曲线。 此外&#xff0c;我们表明…

pip命令行安装pytest 一直报错

其实就是切换不同镜像安装 我最终成功的是阿里云镜像 pip install --trusted-host mirrors.aliyun.com pytest 也可以用其他的 pip install -i https://pypi.org/simple pytest # 或者使用其他的镜像源 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pytest

v4.7版本使用线下付款方式不给管理员发送新订单通知问题修复

在app/api/controller/v1/order/StoreOrderController.php文件中&#xff0c;将红框内的代码注释&#xff0c;加上绿框的代码即可修复 if ($this->services->setOrderTypePayOffline($order[order_id])) {event(NoticeListener, [$order, admin_pay_success_code]);retur…

DIY可视化-uniapp悬浮菜单支持拖动、吸附-代码生成器

在Uniapp中&#xff0c;悬浮菜单支持拖动和吸附功能&#xff0c;可以为用户带来更加灵活和便捷的操作体验。以下是对这两个功能的详细解释&#xff1a; 悬浮菜单支持拖动 提高用户体验&#xff1a;用户可以根据自己的需要&#xff0c;将悬浮菜单拖动到屏幕上的任意位置&#x…

MySQL企业常见架构与调优经验分享

文章目录 一、选择 PerconaServer、MariaDB 还是 MYSQL二、常用的 MYSQL 调优策略三、MYSOL 常见的应用架构分享四、MYSOL 经典应用架构 观看学习课程的笔记&#xff0c;分享于此~ 课程&#xff1a;MySQL企业常见架构与调优经验分享 mysql官方优化文档 调优MySQL参数 一、选择 …

Stable Diffusion 3.5发布:图像生成新纪元,多模态AI的突破!

在人工智能的图像生成领域&#xff0c;我们刚刚迎来了一位新的明星——Stable Diffusion 3.5。这是一款由多模态扩散Transformer&#xff08;MMDiT&#xff09;驱动的文本到图像模型&#xff0c;它在图像质量、字体处理、复杂提示理解以及资源效率方面都实现了显著提升。今天&a…

华为ensp静态路由,浮动路由,缺省路由讲解及配置

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;网络通信基础TCP/IP专栏&#xff1a;点击&#xff01; ENSP专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年10月24日0点15分 祝大家程序员节快乐~ 路由的选择与管理至关重要。静态路由…

少儿编程进入义务教育课程:培养信息科技素养的新政策解读

近年来&#xff0c;随着数字化进程的推进和人工智能技术的普及&#xff0c;编程教育逐渐走入中小学课堂。教育部在《义务教育课程方案和课程标准&#xff08;2022年版&#xff09;》中正式将编程与信息科技教育纳入小学和初中的课程体系中&#xff0c;强调培养学生的计算思维、…