获取随机数可被16整除

mpr*_*pri 6 javascript

在数学中,如何获得可被16整除的最接近数字?

例如,我得到随机数100,我想将该数字(使用数学函数)转换为最接近100的可被16整除的数字(在本例中为96)

我正在尝试用JavaScript做这个,但如果我知道它的数学公式,我会很容易用任何语言来做.

谢谢,问候

Oli*_*rth 18

生成随机整数.乘以16.

  • 如果需要速度,则将它移动4:`myNum << 4` (2认同)

Guf*_*ffa 14

除以16,舍入,乘以16:

n = Math.round(n / 16) * 16;
Run Code Online (Sandbox Code Playgroud)


Jim*_*dra 5

function GetRandomNumberBetween(lo, hi) {
  return Math.floor(lo + Math.random() * (hi - lo));
}

Number.prototype.FindClosestNumberThatIsDivisibleBy = function(n) {
  return Math.round(this / n) * n; //simplify as per Guffa

  /* originally:
     var c = Math.ceil(n);
     var f = Math.floor(n);
     var m = num % n;
     var r = f * n;
     if (m > (n / 2))
       r = c * n;
     return r;
  */
};

var r = GetRandomNumberBetween(10, 100);
var c = r.FindClosestNumberThatIsDivisibleBy(16);
Run Code Online (Sandbox Code Playgroud)