首页
学习
活动
专区
工具
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 {

63220

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 {

18620
  • 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

    28010

    数据变异性的度量 - 极差、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 会使标准偏差人为地变大,从而提供对变异性的保守估计。虽然这不是无偏估计,但它是对标准差的偏少估计:高估而不是低估样本的可变性更好。

    83730

    数据变异性的度量 - 极差、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.5K20

    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.6K30

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

    四、实现倒计时动画效果 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长度的情况下,至少要删几个!

    91310

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

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

    90131

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

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

    68720

    《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 会自动针对数字范围进行检查.

    20741

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

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

    85720

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

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

    22030

    《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就停止。

    3K10
    领券