首页 > 解决方案 > 如何生成一个可以被另一个随机生成的数字整除的随机数

问题描述

我正在使用 JavaScript 和 jQuery 开发一个简单的数学抽认卡应用程序。可用的操作是加法、减法、乘法和除法,每个操作都有使用generateTop()generateBottom()为 HTML 元素赋值的函数。

我无法弄清楚如何使用除法问题函数生成随机数,以便topNumber可以被bottomNumber. 我正在使用以下代码为每个问题生成随机数:

let topNumber = 0;
let bottomNumber = 0;

function generateTop(max, min){
  topNumber = Math.floor(Math.random() * (max - min) + min);
  return topNumber;
};

function generateBottom(max, min){
  bottomNumber = Math.floor(Math.random() * (max - min) + min);
  return bottomNumber;
};

这是我当前的除法问题生成器:

function division(){
  problemTop.html(generateTop(1, 144));
  problemBottom.html(generateBottom(1, topNumber));
  opSym.html("÷");
}

我可以调整最大值和最小值以获得一个正整数来解决加法、减法和乘法问题,但我一直坚持如何确保我得到一个正整数来解决除法问题。我试过搞乱一些不同的循环想法,但没有得到任何工作。我想保持最小值为 1,最大值为 144。

我已经检查了 SO 的解决方案,但只能找到如何生成可被另一个明确的硬编码数字整除的随机数。我怎样才能调整我的除法功能,使topNumber可以被 平均划分bottomNumber

标签: javascriptjqueryhtmlfunctionrandom

解决方案


向您的函数添加一个denomenator参数generateTop,并传入从generateBottom. 乘以由分母创建的新随机数generateTop,然后返回。


推荐阅读