首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将数字数组从旧范围转换到新范围,其中最低值的数字是100,最高值的数字是0?

将数字数组从一个范围转换到另一个范围是一个常见的编程任务,通常用于数据标准化或缩放。在这个问题中,我们需要将一个数字数组的最低值映射到100,最高值映射到0。

基础概念

这种转换通常称为线性变换或线性映射。它涉及以下步骤:

  1. 确定旧范围的最低值和最高值
  2. 确定新范围的最低值和最高值
  3. 应用线性变换公式

公式

假设旧范围是 [oldMin, oldMax],新范围是 [newMin, newMax],对于数组中的任意一个值 x,其在新范围内的值 y 可以通过以下公式计算: [ y = newMin + \frac{(x - oldMin) \times (newMax - newMin)}{(oldMax - oldMin)} ]

应用场景

这种转换在数据可视化、机器学习模型输入标准化、图像处理等领域非常有用。

示例代码

以下是一个用JavaScript实现的示例代码:

代码语言:txt
复制
function mapRange(x, oldMin, oldMax, newMin, newMax) {
  return newMin + ((x - oldMin) * (newMax - newMin)) / (oldMax - oldMin);
}

function transformArray(arr, oldMin, oldMax, newMin, newMax) {
  return arr.map(x => mapRange(x, oldMin, oldMax, newMin, newMax));
}

// 示例数组
const numbers = [30, 50, 70, 90];
const oldMin = Math.min(...numbers);
const oldMax = Math.max(...numbers);

const newMin = 100;
const newMax = 0;

const transformedNumbers = transformArray(numbers, oldMin, oldMax, newMin, newMax);
console.log(transformedNumbers); // 输出: [100, 75, 50, 25]

解释

  1. 确定旧范围的最低值和最高值:通过 Math.min(...numbers)Math.max(...numbers) 获取。
  2. 应用线性变换公式:使用 mapRange 函数对数组中的每个元素进行转换。
  3. 输出结果:转换后的数组 [100, 75, 50, 25]

参考链接

通过这种方式,你可以将任何数字数组从一个范围转换到另一个范围,满足特定的需求。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

2022-07-07:原本数组中都是大于0、小于等于k数字一个单调不减数组其中可能有相等数字,总体趋势递增

2022-07-07:原本数组中都是大于0、小于等于k数字一个单调不减数组其中可能有相等数字,总体趋势递增。...但是其中有些位置数被替换成了0,我们需要求出所有的把0替换方案数量: 1)填充每一个数可以大于等于前一个数,小于等于后一个数; 2)填充每一个数不能大于k。 来自腾讯音乐。...1) as usize]; i = j; } i += 1; } return res; } // 数学方法 // a ~ b范围数字随便选...,可以选重复数,一共选m个 // 选出有序序列方案数:C ( m, b - a + m ) fn ways2(nums: &mut Vec, k: i64) -> i64 { let...(); for i in 0..n { ans[i as usize] = if rand::thread_rng().gen_range(0, 2) == 0 {

63120

2022-07-07:原本数组中都是大于0、小于等于k数字一个单调不减数组其中可能有相等数字,总体趋势递增。但是

2022-07-07:原本数组中都是大于0、小于等于k数字一个单调不减数组其中可能有相等数字,总体趋势递增。...但是其中有些位置数被替换成了0,我们需要求出所有的把0替换方案数量: 1)填充每一个数可以大于等于前一个数,小于等于后一个数; 2)填充每一个数不能大于k。 来自腾讯音乐。...1) as usize]; i = j; } i += 1; } return res; } // 数学方法 // a ~ b范围数字随便选...,可以选重复数,一共选m个 // 选出有序序列方案数:C ( m, b - a + m ) fn ways2(nums: &mut Vec, k: i64) -> i64 { let...(); for i in 0..n { ans[i as usize] = if rand::thread_rng().gen_range(0, 2) == 0 {

18220
  • PHP range() 函数

    实例 创建一个包含 "0" 到 "5" 之间元素范围数组: <?php $number = range(0,5); print_r ($number); ?...> 定义和用法 range() 函数创建一个包含指定范围元素数组。 该函数返回一个包含 low 到 high 之间元素数组。...如果 high 比 low 小,则返回反序数组。 语法 range(low,high,step) 参数 描述 low 必需。规定数组最低值。 high 必需。规定数组最高值。 step 可选。...规定元素之间步进制。默认 1。 技术细节 返回值: 返回包含 low 到 high 元素数组。 PHP 版本: 4+ 更新日志: step 参数在 PHP 5.0 中新增。...在 PHP 4.1.0 到 4.3.2 版本中,该函数数字字符串看作字符串而不是整数。数字字符串将被用于字符序列,例如,"5252" 被看作 "5"。

    1.7K10

    JavaScript笔记

    pop() 方法数组中删除最后一个元素: push() 方法(在数组结尾处)向数组添加一个元素: shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低索引。...unshift() 方法(在开头)向数组添加新元素,并“反向位移”元素 concat() 方法通过合并(连接)现有数组来创建一个数组: slice() 方法用数组某个片段切出新数组。...Math.max.apply 来查找数组最高值: Math.min.apply 来查找数组最低值 数组迭代 Array.forEach() 方法为每个数组元素调用一次函数(回调函数) Array.map...方括号用于查找某个范围字符: [abc] 查找方括号之间任何字符。 [0-9] 查找任何 0 至 9 数字。 (x|y) 查找任何以 | 分隔选项。...exec() 方法用于检索字符串中正则表达式匹配。 该函数返回一个数组其中存放匹配结果。如果未找到匹配,则返回值为 null。

    2.1K10

    OpenCV基础 | 6.ROI与泛洪填充

    ("face", src) 注意转化转化后灰度图单通道,所以要转成三通道进行合并 结果如下 (210, 200) (210, 200, 3) ?...newVal:被填充像素点像素值 upDiff:表示当前观察点像素值与其相邻区域像素值或待加入该区域像素之间亮度或颜色之间负差最小值。...copyImg) mask = np.zeros([h+2, w+2], np.uint8) #+2 个人感觉就是一个padding # 参数:原图,mask图,起始点,重绘像素区域填充值...(颜色),起始点值减去该值作为最低值,起始点值加上该值作为最高值,彩色图模式 #如若像素点在最低值最高值范围内则进行填充新设置颜色 cv.floodFill(copyImg, mask..., (100, 100), (0, 255, 255), (100,100,100), (50, 50, 50), cv.FLOODFILL_FIXED_RANGE) print(copyImg

    27410

    数据变异性度量 - 极差、IQR、方差和标准偏差

    可以使用多种不同方式对变异度进行度量。 极差(Range) 极差,又称全距,可以显示数据分布中最低值最高值分布。 例如,考虑以下数字:1、3、4、5、5、6、7、11。...对于这组数字,极差 11-1 或 10。 极差度量仅使用了 2 个数字因此受异常值影响很大,并且不会提供有关值分布任何信息。所以它最好与其他方法结合使用。...但是IQR受异常值影响较小:这2个值来自数据集中间一半,所以不太可能极端数字。...小知识:每个分布都可以使用五个数字摘要进行组织: 最低值 Q1:第 25 个百分位 Q2:中位数 Q3:第 75 个百分位 最高值 (Q4) 方差(Variance) 方差表示数据集分布范围,...样本 n 减少到 n - 1 会使标准偏差人为地变大,从而提供对变异性保守估计。虽然这不是无偏估计,但它是对标准差偏少估计:高估而不是低估样本可变性更好。

    81730

    WordPress 文章查询教程6:如何使用排序相关参数

    ” 参数升序或降序,默认为”DESC”,即为降序,如果数组的话,可用于多个 order/orderby 集: ASC – 升序,最低值最高值 (1, 2, 3; a, b, c) DESC –...降序,最高值最低值 (3, 2, 1; c, b, a) 然后 orderby 参数,数据类型为:(string | array),按参数对检索到文章进行排序。...常用于页面(排序字段在页面编辑页面的「页面属性」框中),也可用于具有不同 menu_order 值任何文章类型(默认值都是 0)。...meta_value – 按照自定义字段排序,请先确保在查询中已经设置了 meta_key,额外要注意,按字母顺序排列,这对于字符串来说没有问题,但对于数字可以结果不是你预期,(例如结果 1、3...meta_value_num – 按照数字类型自定义字段排序。

    1.5K30

    数据变异性度量 - 极差、IQR、方差和标准偏差

    可以使用多种不同方式对变异度进行度量 极差(Range) 极差,又称全距,可以显示数据分布中最低值最高值分布。 例如,考虑以下数字:1、3、4、5、5、6、7、11。...对于这组数字,极差 11-1 或 10。 极差度量仅使用了 2 个数字因此受异常值影响很大,并且不会提供有关值分布任何信息。所以它最好与其他方法结合使用。...但是IQR受异常值影响较小:这2个值来自数据集中间一半,所以不太可能极端数字。...小知识:每个分布都可以使用五个数字摘要进行组织: 最低值 Q1:第 25 个百分位 Q2:中位数 Q3:第 75 个百分位 最高值 (Q4) 方差(Variance) 方差表示数据集分布范围,但它是一个抽象数字...样本 n 减少到 n - 1 会使标准偏差人为地变大,从而提供对变异性保守估计。虽然这不是无偏估计,但它是对标准差偏少估计:高估而不是低估样本可变性更好。

    1.4K20

    抢购倒计时自定义控件实现与优化

    四、实现倒计时动画效果 4.1 倒计时数字滚动动画原理分析 效果图上可以看到,时、分、秒都是两位数,且数字变化规律都相同:首先是个位数开始变化,数字正常展示区域向上移动一定距离,数字从下向上移动一定距离到达正常展示区域...具体实现思路为: 1、时/分/秒两位数当成一个数字滚动组件; 2、数字滚动组件两位数,拆分成一个数字数组,变化操作针对数组单个元素操作即可; 3、保存数字数字数字数组元素逐个比较...,数字相同位绘制数字数字不同位一起移动即可; 4、在移动数字时,需要将数字向上移动,移动距离 0 至 负最大滚动距离;同时要将数字向上移动,移动距离为最大滚动距离 至 0其中最大滚动距离数字滚动控件高度...首先拆分数字数字成为相应数字数组; 具体代码如下所示: //拆分数字成为数字数组 for (int i = 0; i < mNewNumber.length(); i++) { mNewNumberArray.add...当应用切换到回前台 或者 其他界面回退到倒计时控件所在界面,若此时倒计时控件在可视范围内,则都需要重新开始倒计时。

    1.5K30

    2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上, 你可以删除数字,目的让arr最长递增子序列长度小于K。 返回至少删除

    2022-08-06:给定一个数组arr,长度为N,arr中所有的值都在1~K范围上,你可以删除数字,目的让arr最长递增子序列长度小于K。返回至少删除几个数字能达到目的。.....index-1]上,选择了一些数字,之前决定!...len = 3 : 1 2 3// arr[index....]能够决定,之前,已经不能再决定了// 返回:让最终保留数字,凑不足k长度情况下,至少要删几个!.....index-1]上,选择了一些数字,之前决定!...len = 3 : 1 2 3// arr[index....]能够决定,之前,已经不能再决定了// 返回:让最终保留数字,凑不足k长度情况下,至少要删几个!

    90510

    .NET性能系列文章一:.NET7性能改进

    看到哪种方法实现特定功能最快方法,以及大量技巧和敲门,如何付出较小代价就能最大化你代码性能。如果你对这些主题感兴趣,那请您继续关注。...通过这个新版本,微软提供了一些大性能改进。这篇 .NET 性能系列第一篇文章,关于.NET6 到.NET7 最值得注意性能改进。...它们被用来识别数字枚举中最低值最高值实现特别要求有一个先前枚举集合作为源,因此我们必须在这个基准测试中创建一个数组。...当你不想映射到IComparable类型时,应该使用方法取代.NET7 中OrderBy()和OrderByDescending()方法。...由于有大量 API 使用Guid作为实体标识符,这肯定会积极产生影响。 2. BigInt 解析 一个很大改进发生在巨大数字字符串解析为BigInteger类型。

    68020

    使用JavaScript | Python | Java | C++解决罗马数字换到阿拉伯数字

    罗马数字换到阿拉伯数字 问题描述: 例子: 限制条件: 解决思路: 执行代码: JavaScript代码: Python代码: Java代码: C++代码: 更多相关 问题描述: 罗马数字由七个不同符号表示...数字27写为XXVII,即XX + V + II。 罗马数字通常从左到右大到小书写。但是,四数字不是IIII。而是数字四写为IV。因为一个在五之前,所以我们减去它等于四。...确保s范围有效罗马数字[1, 3999]。...在“IV”,例如,值“I”,1,值中减去“V”,5。否则,您只需将所有数字值相加即可。 关于减号,我们应该意识到一件事它们可识别的,因为它们出现在较大数字之前。...如果我们遇到字母值小于到目前为止所看到最大字母值,则应减去而不是加。 标准方法使用一个单独变量来跟踪看到最高值,但是这里有一个更简单技巧。

    88531

    Python 机器学习入门:数据集、数据类型和统计学

    它可以是数组到完整数据库任何东西。...,我们可以猜测平均值可能在80到90之间,我们还能够确定最高值最低值,但我们还能做什么?...我们可以数据类型分为三个主要类别: 数值 分类 顺序 数值数据数字,并且可以分为两个数值类别: 离散数据 - 限制为整数数字。示例:汽车经过数量。 连续数据 - 有无限值数字。...示例:物品价格或大小。 分类数据不能相互比较值。示例:颜色值或任何/否值。 顺序数据类似于分类数据,但可以相互比较。示例:学校成绩,其中A好于B等等。...] x = numpy.median(speed) print(x) 如果中间有两个数字这些数字总和除以2。

    21330

    《JavaSE-第二章》之基本数据类型与类型转换

    (): 当前字符串转换成字符数组返回 public String substring(int beginIndex, int endIndex) 根据开始和结束索引进行截取,得到字符串(包前不包后...target, CharSequence replacement) 使用值,字符串中值替换,得到字符串 public String[] split(String regex) 根据传入规则切割字符串...a = 100; // 编译通过 byte b = 256; // 编译报错, 提示 int转换到byte可能会有损失 注意: byte 表示数据范围 -128 -> +127, 256 已经超过范围...强制类型转换不是一定能成功, 互不相干类型之间无法强. 6.4类型转换小结 不同数字类型变量之间赋值, 表示范围更小类型能隐式转换成范围较大类型 如果需要把范围类型赋值给范围, 需要强制类型转换...一个字面值常量进行赋值时候, Java 会自动针对数字范围进行检查.

    19741

    .NET性能系列文章一:.NET7性能改进

    看到哪种方法实现特定功能最快方法,以及大量技巧和敲门,如何付出较小代价就能最大化你代码性能。如果你对这些主题感兴趣,那请您继续关注。...通过这个新版本,微软提供了一些大性能改进。这篇 .NET 性能系列第一篇文章,关于.NET6 到.NET7 最值得注意性能改进。...它们被用来识别数字枚举中最低值最高值实现特别要求有一个先前枚举集合作为源,因此我们必须在这个基准测试中创建一个数组。...当你不想映射到IComparable类型时,应该使用方法取代.NET7 中OrderBy()和OrderByDescending()方法。...由于有大量 API 使用Guid作为实体标识符,这肯定会积极产生影响。 2. BigInt 解析 一个很大改进发生在巨大数字字符串解析为BigInteger类型。

    84420

    《JavaScript权威指南》——JavaScript核心

    1随机数 Math.max(1, 3, 5); // => 返回最高值 Math.min(1, -3, 50); // => 返回最低值 Math.pow(2, 3); //...高级”玩法 parseInt()可以接收第二个可选参数,这个参数指定了数字转换基数,有效取值范围2-36. parseInt("11", 5); //6 => 1*5+1 parseInt(...先说slice slice定义:方法返回一个开始到结束(不包括结束)选择数组一部分浅拷贝到一个数组对象。原始数组不会被修改。...,并返回一个数组,不会改变老数组。...a - b; }); //[1, 3, 3, 4, 5, 8, 9, 12] 理解:a-b得到一个值,而这个正常按照数字正常规则进行排序,也就是 负数=>0=>正数,所以理解a-b不能单纯理解他为一个

    1.2K90

    《JavaScript权威指南》——JavaScript核心

    1随机数 Math.max(1, 3, 5); // => 返回最高值 Math.min(1, -3, 50); // => 返回最低值 Math.pow(2, 3); //...高级”玩法 parseInt()可以接收第二个可选参数,这个参数指定了数字转换基数,有效取值范围2-36. parseInt("11", 5); //6 => 1*5+1 parseInt(...先说slice slice定义:方法返回一个开始到结束(不包括结束)选择数组一部分浅拷贝到一个数组对象。原始数组不会被修改。...,并返回一个数组,不会改变老数组。...a - b; }); //[1, 3, 3, 4, 5, 8, 9, 12] 理解:a-b得到一个值,而这个正常按照数字正常规则进行排序,也就是 负数=>0=>正数,所以理解a-b不能单纯理解他为一个

    1K30

    Scala入门必刷100道练习题(附答案)

    编写一个方法method3,要求能够输入一个大于0数字参数,能够打印1到该数字范围所有数。(2种方式) 24....编写一个方法method4,要求能够输入一个大于0数字参数,能够打印1到该数字范围所有偶数。 25....编写一个方法method5,要求能够输入一个大于0数字参数,能够打印1到该数字范围所有奇数,并且该奇数不能被5整除。 26....编写一个方法method6,要求可以输入任意多个参数(数字类型),每个参数乘以100后放入数组并返回该数组。 如:2, 4, 6 返回 Array(200, 400, 600)。 27....编写一个方法method10,要求有两个参数,两个参数都为大于0数字,要求能够打印1到第一个参数数字范围所有数,在打印过程中遇到与第二个参数相乘大于200就停止。

    2.9K10
    领券