数值区间的模糊匹配,二分查找的应用

news2024/9/29 9:26:20

先看图:在这里插入图片描述
需求很明确,要根据左边的值,显示右边的值。

比如,现在拿到的值是 17.12,那么应该显示成 15;拿到 17.599 ,那么应该显示成 20.

先找规律:

为了便于说明,暂且将左边的值设为 x, 右边的值设为 y.

  1. 第一行和最后一行可以写死成 0 与 1500;
  2. 余下的每行,x 的区间是 (min, min+5] , 对应的 y == min + 2.5,

那么,根据规律 2 ,也就是说 y-2.5==min; y+2.5 == max。虽然这里有点投机取巧之嫌(因为刚好是 ± 2.5)。

根据 x 计算 y,如何计算呢?

思考 666 分钟之后,发现这个很难计算,虽然规律是显而易见的,但是,一个任意的 x ,又怎么去匹配到对应的行呢,似乎有点困难。
如果说弄一个 list 之类的容器去记录 x 的区间,这样似乎就失去了计算的意义,跟直接 switch case 也没什么区别了。

于是决定换个思路,从 y 下手,因为 y 的值更少,而且规律更显而易见。

我们这么看,拿到一个 x, 就去跟 (y-2.5, y+2,5]

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

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

相关文章

Vue CLI 创建一个项目

vue create 运行以下命令来创建一个新项目: vue create hello-world警告 如果你在 Windows 上通过 minTTY 使用 Git Bash,交互提示符并不工作。你必须通过 winpty vue.cmd create hello-world 启动这个命令。不过,如果你仍想使用 vue crea…

发布会前准备新闻通稿的重要性,为什么媒体不会原稿发布报道?

传媒如春雨,润物细无声,大家好,我是51媒体 胡老师。 最近有宣传的小伙伴问胡老师,为什么我们精心准备的新闻通稿,媒体没有按照稿子发布呢?今天就与大家交流下这方面的经验。 一,发布会前准备新…

中断嵌套实验

使用汇编语言,要求: 外部中断1可以嵌套外部中断0 没有中断时,8个LED发光二极管以0.1s的速度闪烁。 有外部中断0时,8个LED发光二极管以0.1s的速度流水点亮。(中断子程序0) 有外部中断1时,会打断外…

还在为招生发愁?一文get中外合办院校招生技巧

生源,是任何一所高校的生存之本和生命线。因此,正确的招生策略,对于院校来说显得格外重要。 近几年,越来越多的家长和学生开始关注中外合办大学,随之而来的中外合办大学的生源竞争也越来越激烈。那么,有哪…

学好虚拟化,首先要学Linux

上次讲到了虚拟化的基础知识,比如虚拟化的应用、各个厂商都是通过何种技术路径来实现的等等,本篇想记录一下我学习到的CPU内存虚拟化和网络虚拟化相关知识,通过记录来制造反馈,让自己更有效地学习。需要注意的是,学习虚…

这 7个 AI 写作助手,太实用了

想象一下:你正在办公桌前为你的广告输入标题,但你突然思维阻塞并卡住了,可惜这时还没有神奇的软件可以帮助你想出点子。或许是有的? 2023 年,AI 写作工具似乎不可避免地会很快融入我们的工作流程中。现代知识工作者已…

政府大数据中心数据资源平台建设方案WORD2022

本资料来源公开网络,仅供个人学习,请勿商用,如有侵权请联系删除 1.1 项目建设内容 对于本次区级大数据资源平台的建设,将按照“总体规划一步到位,平台建设分步实施,数据赋能逐步升级”的原则,落…

理解什么是DTO?什么是AutoMapper?

什么是DTO? .Net DTO是一个对象,它定义了数据如何在网络上发送。它只用于发送和接收数据,不包含任何业务逻辑。使用DTO的原因有以下几个: 将服务层与数据库层分离隐藏客户端不需要查看的特定属性省略一些属性以减少有效负载大小处理嵌套对象…

【LeetCode: 233. 数字 1 的个数 | 暴力递归=>记忆化搜索=>动态规划 | 数位dp】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Term Suggester 中 suggest_mode 的三种模式missing、popular、always 的区别

1、Term Suggester term suggester 正如其名&#xff0c;只基于 tokenizer 之后的单个 term 去匹配建议词&#xff0c;并不会考虑多个term之间的关系 POST <index>/_search { "suggest": {"<suggest_name>": {"text": "<s…

VM——VMware装Centos

一、创建虚拟机配置 打开VMware&#xff0c;创建新虚拟机 选择自定义&#xff0c;下一步 选择16.x&#xff0c;然后下一步 选择稍后安装&#xff0c;然后下一步 选择Linux、镜像版本&#xff0c;然后下一步 输入虚拟机名称&#xff0c;选择存放位置&#xff0c;然后下一步 选择…

串口UART介绍

【记录所学】 1. 串口的硬件介绍 UART的全称是Universal Asynchronous Receiver and Transmitter&#xff0c;即异步发送和接收。串口在嵌入式中用途非常的广泛&#xff0c;主要的用途有&#xff1a; 打印调试信息&#xff1b;外接各种模块&#xff1a;GPS、蓝牙&#xff1b…

【java web篇】MyBatis实现增删改查

&#x1f4cb; 个人简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是阿牛&#xff0c;全栈领域优质创作者。&#x1f61c;&#x1f4dd; 个人主页&#xff1a;馆主阿牛&#x1f525;&#x1f389; 支持我&#xff1a;点赞&#x1f44d;收藏⭐️留言&#x1f4d…

Git使用教程:从入门到精通(以Gitee为例)

一、前言 Git是一款分布式版本控制系统&#xff0c;可以帮助开发者更好地管理代码。在众多的Git平台中&#xff0c;Gitee是国内最受欢迎的Git平台之一。本篇文章将介绍如何使用Git进行代码管理&#xff0c;并以Gitee为例&#xff0c;详细讲解Git的基本操作和常用命令。 二、深入…

JS学习笔记(一)

从编程模式看&#xff1a;JS是结构化、事件驱动的动态语言&#xff0c;支持声明式和指令式两种模式&#xff0c;所以JS是一个多模式的语言。面向对象和函数式是常用的两种模式。 函数式编程 基本概念&#xff1a;函数是什么&#xff1f;函数是数据集到目标的一种关系。在函数式…

Windows逆向安全(一)之基础知识(十)

汇编一维数组 之前的文章学习过了四种基本类型&#xff1a;char short int long的汇编表示形式 因为它们的数据宽度都小于等于32位&#xff0c;所以都可以只用一个通用寄存器来存储 接下来的数组显然就无法只用一个通用寄存器就可以存储了 在学习数组之前&#xff0c;再学习…

云可见性和端口欺骗:已知的未知

与所有技术一样&#xff0c;新工具是建立在以前的基础上的迭代&#xff0c;经典的网络日志记录和指标也不例外。 网络流量的工具、检测和监控在私有云和内部部署中几乎没有变化。今天使用的许多日志和指标已有将近二十年的历史&#xff0c;最初是为了解决计费等问题而设计的。…

Node 08-express框架

express 介绍 express 是一个基于 Node.js 平台的极简、灵活的 WEB 应用开发框架&#xff0c;官方网址&#xff1a; https://www.expressjs.com.cn/ 简单来说&#xff0c;express 是一个封装好的工具包&#xff0c;封装了很多功能&#xff0c;便于我们开发 WEB 应用(HTTP 服务)…

强训之【查找组成一个偶数最接近的两个素数和二进制插入】

目录 1.查找组成一个偶数最接近的两个素数1.1题目1.2思路1.2.1 暴力解法1.2.2 取中判断 1.3代码1.3.1暴力求解代码1.3.2 取中判断代码 2.二进制插入2.1题目2.2思路2.3代码 3.选择题 1.查找组成一个偶数最接近的两个素数 1.1题目 链接: link 描述 任意一个偶数&#xff08;大于…

Android学习Day1

Android学习笔记 了解Android 的结构ActivityAndroid中的布局了解安卓的结构ActivityAndroid中的布局代码展示(登录界面的实现)&#xff1a;实现效果&#xff1a;代码展示&#xff08;注册界面的实现&#xff09;实现效果一些之前学习的笔记end 了解Android 的结构 Activity …