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

如何让Math.random从4个不同的数组中选择相同数量的用户输入值?

要让Math.random从4个不同的数组中选择相同数量的用户输入值,可以按照以下步骤进行:

  1. 首先,创建4个不同的数组,每个数组包含用户输入的值。可以使用任何编程语言来实现这一步骤,例如JavaScript中的数组。
  2. 确定要选择的用户输入值的数量。假设要选择n个值。
  3. 使用Math.random生成一个0到1之间的随机数。
  4. 将该随机数乘以n,然后向下取整,得到一个0到n-1之间的整数。这个整数将用作数组的索引。
  5. 从第一个数组中选择索引对应的值,并将其存储在结果数组中。
  6. 重复步骤3到5,直到结果数组中包含了n个值。
  7. 重复步骤3到6,分别从剩余的3个数组中选择相同数量的值,并将它们存储在结果数组中。
  8. 最后,结果数组中将包含从4个不同数组中选择的相同数量的用户输入值。

下面是一个示例JavaScript代码,演示了如何实现上述步骤:

代码语言:txt
复制
// 创建4个不同的数组,每个数组包含用户输入的值
const array1 = [1, 2, 3, 4, 5];
const array2 = [6, 7, 8, 9, 10];
const array3 = [11, 12, 13, 14, 15];
const array4 = [16, 17, 18, 19, 20];

// 确定要选择的用户输入值的数量
const numValues = 3;

// 存储结果的数组
const result = [];

// 从每个数组中选择相同数量的值
for (let i = 0; i < numValues; i++) {
  // 生成0到1之间的随机数
  const random = Math.random();

  // 将随机数乘以numValues并向下取整,得到一个0到numValues-1之间的整数
  const index = Math.floor(random * numValues);

  // 从第一个数组中选择索引对应的值,并将其存储在结果数组中
  result.push(array1[index]);

  // 从剩余的3个数组中选择相同数量的值,并将它们存储在结果数组中
  result.push(array2[index]);
  result.push(array3[index]);
  result.push(array4[index]);
}

console.log(result);

请注意,以上示例代码仅为演示目的,实际应用中可能需要根据具体情况进行适当的修改和优化。

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

相关·内容

在线算命网站源码|算命小程序源码带uniapp

您可以根据算命先生姓名、评级、定价、语言、专长、位置等筛选算命先生。California Psychics 还拥有全面的算命先生档案,您更轻松地选择专家。   ...请注意,数组每个都用逗号分隔(最后一项后没有逗号)。另请注意,在这种情况下,是字符串,因此它们包含在语音标记。   ...,它等于我们 fortunes 数组随机项目的。...可以在加载应用程序时调用函数来运行,或者用户输入另一个函数等调用。例如,您可能正在编写一个计算机游戏,其中包含一个函数,比如失去健康或增加分数等。   ...因此,让我们创建一个简单函数,它将从我们数组中生成一个随机项并将其放入 HTML 页面。我们将从按钮单击(用户输入)调用此函数。

3K62

翻译连载 | 第 10 章:异步函数式(下)-《JavaScript轻量级函数式编程》 |《你不知道JS》姊妹篇

唯一不同是在我们执行 map(..) 来映射数组 a 生成数组 b 之后,定时器在 a 里面添加随机。 但是这个虚构 LazyArray 有点不同,它假设了可以随时一个一个添加进去。...具体来说,正如 promise 单个异步操作抽离出我们所担心时间状态,响应式函数式编程从一系列/操作抽离(分割)了时间状态。...在之前代码, b a 当中去拉取,但是在这个代码,a 推送给 b。换句话说,把 b = a.map(..) 替换成 b.onValue(v)。...这将会分离生产者和消费者变得困难。 相比之下,在之前代码,b = a.map(..) 表示了 b 来源于 a ,对于如同抽象事件流数据源 a,我们不需要关心。...方法会用当前数组每一个运行一次映射函数,然后放到返回数组里。而 observable 数组里则是为每一个运行一次映射函数,无论这个何时加入,然后把它返回到 observable 里。

92050

随机播放歌曲算法,原来是这么做,我一直都搞错了

还等什么,继续往下看~ 方法一:Fisher-Yates 算法 Fisher-Yates 算法基本前提是遍历条目,将数组每个元素与数组剩余未洗牌部分随机选择元素进行交换。...下面我们解释一下,在使用 Fisher-Yates 算法对数组进行洗牌情况下,数组解构赋值是如何工作: Array [i] 和 Array [j] 表示数组需要交换两个元素。...为什么要从 Math.random() 结果减去 0.5 ? 通过从 Math.random() 结果减去 0.5,将会引入一个介于 -0.5 和 0.5 之间随机。...这个随机**将导致比较函数以随机方式为不同元素对返回负、正或零。**因此,sort() 方法随机打乱数组。...,并在 map() 函数中使用与上面示例相同Math.random() 函数,返回具有排序编号和对象数组

18420

测量JavaScript函数性能简单方法及与其他方式对比

良好性能有助于获得良好用户体验,良好用户体验会用户回头客。一项研究显示,88%在线消费者因为性能问题,在用户体验不佳后用户回来可能性较小。...在这篇文章,我将解释你如何测量你功能性能,以及如何处理你它们得到结果。 ?...Chrome完全不同,这是因为Firefox版本60开始将 performance API 精度降低到2ms。...注意输入 在实际应用,给定函数输入可能会发生很大变化。仅针对任意随机测量函数速度并不能提供我们可以实际使用任何有价值数据。 确保使用相同输入运行代码。...多次运行函数 假设你有一个函数对一个数组进行迭代,对每个数组进行一些计算,并返回一个数组结果。你想知道是forEach 还是简单 for 循环更有效。

1K20

纯函数讲起,一窥最深刻函子 Monad

该函数不会产生任何可观察副作用,例如网络请求,输入和输出设备或数据突变(mutation) 输入 & 输出 在纯函数,约定:相同输入总能得到相同输出。...,都会有相同结果;而 splice 则不会,splice 会修改原数组,导致即使参数完全相同,结果竟然完全不同。...在数组,类似的、会对原数组修改方法还有不少:pop()、push()、shift()、unshift()、reverse()、sort()、splice() 等,阅读代码时,想要得到原数组最终,...,输入相同参数,得到不同结果。...副作用主要包含: 可变数据 打印/log 获取用户输入 DOM 查询 发送一个 http 请求 Math.random() 获取的当前时间 访问系统状态 更改文件系统 往数据库插入记录 举一些常见有副作用函数例子

39510

_作为一个程序员一定要掌握算法之遗传算法

最简单并行方式是几百甚至数千台计算机各自进行独立种群演化计算,运行过程甚至不进行任何通信,等到运算结束时才通信比较,选取最佳个体。二是遗传算法内含并行性。...比如说,参数初始化函数,主要用来进行输入,确定参数取值范围和迭代次数和群体数量这些都是需要我们去自定义输入,还包括了计算适应度函数,计算每一个个体对应适应度是多少,还有选择运算,根据每个个体适应度进行选择...// 初始化参数最大,群体 public static void xScan(){ // 输入参数范围 System.out.print("请输入每代群体数量:")...交叉运算交叉算法主要逻辑就是个体数组索引随机生成一个不重复数组,然后根据这个不重复数组首尾两两交配,达成一个伪随机两两交配思想。...选择算子:了解不同选择算子,如轮盘赌选择、锦标赛选择等,以及它们之间优缺点。 交叉算子:学习如何通过交叉操作来生成新个体,以增加种群多样性和搜索空间覆盖度。

23010

canvas实现漂亮下雨效果

一个雨滴对象里面有各个属性用来表示,雨滴x坐标,y坐标,长度,下落速度,颜色,判断是否删除标志位 更新动画时 往数组添加一定数量雨滴对象,然后遍历数组,修改每个雨滴对象x坐标和y坐标,...所以实现效果重点就在坐标上 初始化一个雨滴时候 雨滴x坐标:一个随机数 雨滴y坐标:-100,这样是为了雨滴可视区域外进来 更新动画时 雨滴x坐标:原x坐标的 + speed...更新动画时 往数组添加一定数量小水珠对象,然后遍历数组,修改每个小水珠对象x坐标和y坐标,用canvas根据小水珠对象坐标属性 和 半径属性,画一个圆弧。...原x坐标 + vx, speedx:上面提到和鼠标移动方向相关一个变量,这里作用就是用来控制小水珠移动方向和其他方向相同 speedx / 2,除2是为了使 小水珠 在x轴移动距离短一点.../ maxi 代表要画小水珠数量 var maxi = Math.floor(Math.random() * 5 + 5); for (var i = 0; i < maxi

1.6K11

(34) 随机 计算机程序思维逻辑

我们首先来介绍Java对随机支持,同时介绍其实现原理,然后我们针对一些实际场景,包括洗牌、抢红包、摇号、随机高强度密码、带权重随机选择等,讨论如何应用随机。...Math.random()是如何实现呢?...shuffle基本思路是什么呢?后往前,逐个给每个数组位置重新赋值,剩下元素随机挑选。...带权重随机选择 实际场景,经常要从多个选项随机选择一个,不过,不同选项经常有不同权重。 比如说,给用户随机奖励,三种面额,1元、5元和10元,权重分别为70, 20和10。这个怎么实现呢?...维护一个剩余总金额和总数量,分配时,如果数量等于1,直接返回总金额,如果大于1,则计算平均值,并设定随机最大为平均值两倍,然后取一个随机,如果随机小于0.01,则为0.01,这个随机就是下一个红包金额

1.1K60

使用 JavaScript 实现机器学习和神经学网络

你可以尝试填入一些数字,看看它们是如何影响集群粒子运动轨迹。其实有很多数字组合不会产生集群行为,而我在实例填入默认是比较合适。...神经网络内部也可能存在隐藏层,该层同样包含有神经元。隐藏层也有助于信息处理。XOR神经网络(异或神经网络),有两个输入和一个输出。两个输入端接收布尔(0或者1),输出神经元也输出布尔。...其目的就是神经网络实现和XOR(异或运算)操作符相同功能。...输入神经元将会根据你输入数据训练出放置x坐标和y坐标的方式。期望或者理想输出应该是与你在该位置选择颜色近似一致。 让我们来看一个简单案例。...你还可以选择创建一个复杂多颜色模式。下面的案例为数据点随机生成了颜色。神经网络甚至会将颜色进行混合,试图做出妥协,以此来尽可能地降低误差。 图 10:多颜色数据点分类 ?

1K100

作为一个程序员一定要掌握算法之遗传算法

最简单并行方式是几百甚至数千台计算机各自进行独立种群演化计算,运行过程甚至不进行任何通信,等到运算结束时才通信比较,选取最佳个体。 二是遗传算法内含并行性。...比如说,参数初始化函数,主要用来进行输入,确定参数取值范围和迭代次数和群体数量这些都是需要我们去自定义输入,还包括了计算适应度函数,计算每一个个体对应适应度是多少,还有选择运算,根据每个个体适应度进行选择...// 初始化参数最大,群体 public static void xScan(){ // 输入参数范围 System.out.print("请输入每代群体数量...3.2.3 交叉运算 交叉算法主要逻辑就是个体数组索引随机生成一个不重复数组,然后根据这个不重复数组首尾两两交配,达成一个伪随机两两交配思想。...选择算子:了解不同选择算子,如轮盘赌选择、锦标赛选择等,以及它们之间优缺点。 交叉算子:学习如何通过交叉操作来生成新个体,以增加种群多样性和搜索空间覆盖度。

42530

通过JS库Encog实现JavaScript机器学习和神经学网络

比如一群小鸟,一群昆虫,一个学校鱼群,一群牛等等。其实就是用不同名字来描述本质相同行为。 初看上去,蜂拥算法可能看似复杂。...你可以尝试填入一些数字,看看它们是如何影响集群粒子运动轨迹。其实有很多数字组合不会产生集群行为,而我在实例填入默认是比较合适。...神经网络内部也可能存在隐藏层,该层同样包含有神经元。隐藏层也有助于信息处理。XOR神经网络(异或神经网络),有两个输入和一个输出。两个输入端接收布尔(0或者1),输出神经元也输出布尔。...其目的就是神经网络实现和XOR(异或运算)操作符相同功能。...输入神经元将会根据你输入数据训练出放置x坐标和y坐标的方式。期望或者理想输出应该是与你在该位置选择颜色近似一致。 让我们来看一个简单案例。

2.8K100

红包随机算法&微信群红包随机算法

因产品要求,红包金额要随机生成,所以这里涉及到指定红包总额、数量和最大最小情况下如何生成红包金额。...可以看出,红包随机金额生成输入是一个四元组 ,其中 sum 是红包总额,num 是红包数量,min 和 max 分别是红包最小最大。...这两个是算法内设,不提供给用户指定。另外总金额 sum 和数量 num 是由用户指定。 为什么微信群红包要搞一个最大上限,因为如果不设置一个最大上限,会出现一种不公平现象。...<= max*num step 2: 将 num 个在 min 填入数组 step 3: 循环随机一个范围为 [0, max - min] 数加到最小数组。...这里需要经过一轮或多轮遍历,将 (min, max) 之间数减掉部分给到 min 或者 max 获得部分 step 5: 打乱数组顺序 注意,在第四步消除最小或最大,是控制在一定比例还是完全消除

7K20

算法可视化:把难懂代码画进梵高星空

对于每个新样本,最佳候选算法生成固定数量候选采样点,用灰色表示(在这里,这个数为10)。采样区域均匀地选择每个候选采样点。 最佳候选者,以红色显示,是离所有先前样本(以黑色显示)最远一个。...在每次迭代所有活跃采样点集合随机选择一个。然后,在围绕所选采样点环内随机生成一些数量候选采样点(用空心黑点表示)。环半径r延伸到2r,其中r是样本之间最小允许距离。...该算法把数组划分为两个部分,右半边是已洗牌区域(用黑色表示),左半边是待洗牌区域(用灰色表示)。每一步左边待洗牌区域随机选择一个元素并将其移动到右侧,已洗牌区域元素数量扩大了1个。...比较器定义元素顺序。它使用参数a和b (要比较数组两个元素),如果a小于b,则返回小于零,如果a大于b,则返回大于零,如果a和b相等,则返回0。比较器在排序期间重复调用。...上面显示是最简单也是速度最慢一个。这种变化对于教学是有用,但是在实践,为了得到更好性能应用了更复杂实现方法。 常见改进是“三”枢轴选择,其中第一,中间和最后元素中值被用作基准。

1.5K40

Java程序设计(基础)- 数组

数组对于每一门编程语言来说都是重要数据结构之一,当然不同语言对数组实现及处理也不尽相同。 Java语言中提供数组是用来存储固定大小同类型元素。...如果两个数组包含相同数量元素,并且两个数组所有相应元素对都是相等,则认为这两个数组是相等。换句话说,如果两个数组相同顺序包含相同元素,则两个数组是相等。...获取指定行元素时,需要将行数固定,然后只遍历该行全部列即可。 例如:编写一个案例,接收用户在控制台输入行数,然后获取该行中所有元素。...请输入: 3 第3行第[0]个元素是:100.0 第3行第[1]个元素是:100.0 第3行第[2]个元素是:99.5 获取整列元素 例如:编写一个案例,接收用户在控制台中输入列数,...数值数组元素默认为 0,而引用元素默认为 null。 交错数组数组数组,因此,它元素是引用类型,初始化为 null。交错数组元素维度和大小可以不同

52820

XDM,JS如何函数式编程?看这就够了!(六)

函数式编程给出了实现“代码更可读”落地原则(已多次回顾): 严格控制显示输入输出; 封装高级函数,比如偏函数、柯里化实现参数时域分离; 封装高级函数,比如函数组装,形成黑盒; 对其它基础方法进行封装...本质上 “监听” 了数组 a,只要一个新添加到数组末端(push(..)),它都会运行映射函数 v => v * 2 并把改变后添加到数组 b 里。 什么意思?...这里直接给出解答: 正如 promise 单个异步操作抽离出我们所担心时间状态,发布订阅模式也能从一系列或操作抽离(分割)时间状态; 我们分离 【发布者】 和 【订阅者】 相关代码...替换成 b.onValue(v),尽量避免将 b 逻辑夹杂在 a 关注点更加分离! 上述 LazyArray 又可叫做 observable!...如果一个方法被调用,则它返回应该由输入 Observable 去返回,然后触发到输出 Observable里,否则抛弃。

57340

20分钟带你掌握JavaScript Promise和 AsyncAwait

下面我们开始示例2 示例2:一个猜数字游戏 基本需求: 用户可以输入任意数字 系统1到6随机生成一个数字 如果用户输入数字等于系统随机数,则给用户2分 如果用户输入数字与系统随机数相差1,给用户1...const randomNumber = Math.floor(Math.random() * 6 + 1); // 选择一个1到6随机数 }); }; 当用户输入一个不是数字。...const randomNumber = Math.floor(Math.random() * 6 + 1); //选择一个1到6随机数 if (isNaN(userNumber...const randomNumber = Math.floor(Math.random() * 6 + 1); // 选择一个1到6随机数 if (isNaN(userNumber))...{ reject(new Error("Wrong Input Type")); // 当用户输入非数字,抛出异常并调用reject函数 } if (userNumber ===

65120

笨办法学 Java(三)

回到 20 世纪 70 年代,要在某台机器上更改密码,您需要输入密码,然后机器会将您用户名和新密码哈希存储在文件。 然后,当您以后想要登录到机器时,它会输入用户名和密码。...练习 49:在数组查找东西 更多关于数组内容!在这个练习,我们将研究如何找到特定。...“对于数组orderNumbers每个整数‘num’…”。因此,在此循环主体,num将逐个接受数组每个,并将它们全部显示出来。 在第 22 行,我们人类输入订单号。...因为你已经知道如何文本文件读取数据,你可以自己修改它,它从一个本地文件读取(一个与你代码在同一个文件夹文件,而不是在互联网上)。但如果你懒得动手,我在下面列出了一个备用版本。)...数组是一个变量许多不同,其中值都是相同类型,并且它们由索引(槽号)区分。记录是一个变量几个不同,但可以是不同类型,并且它们由名称(通常称为“字段”)区分。

14210

RxJS 函数式与响应式编程

也就是说,每一步都是单纯运算,而且都有返回。 纯函数 纯函数特点: 给定相同输入参数,总是返回相同结果。 没有依赖外部变量。 没有产生任何副作用。...((p,n) => p + n); 可维护性高、方便代码管理 函数式编程不依赖、也不会改变外界状态,只要给定输入参数,返回结果必定相同。...流非常轻便,并且无处不在,任何东西都可以是一个流:用户输入、缓存、数据结构等等。例如,想象一下微博推文也可以是一个数据流,和点击事件一样。你可以对其进行侦听,并作相应反应。...比如商城购物车,当我们改变购物车商品数量或者删除某个商品时,我们希望能自动更新订单金额,而不需要用户做任何其他操作。...RxJS 擅长处理异步操作,因为它对数据采用 “Push”(相较于 “Pull” 方式),当一个数据产生时候,会被主动地推给处理函数,这个处理函数不用关心数据是同步或者异步产生,这样就让开发者异步处理境遇解救出来

1K20
领券