- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果您想在 190 到 255 之间选择一个随机数,期望均匀分布的结果,您需要的代码就像下面这样简单,对吗?
190 + Math.floor(Math.random() * 66);
但是,如果您更喜欢 190 到 255 之间的不均匀分布结果怎么办?我的意思是,例如,数字越接近范围的下限(即 190),选择该数字的可能性就越高。
让我们假设代码返回一个随机数:
between 190 and 210 with a 70% probability.
between 211 and 230 with a 20% probability.
between 231 and 255 with a 10% probability.
我认为像这样的不均匀分布为选择随机数的行为增添了一种有趣的味道。
我用两种不同的方式为此编写了代码,第二种采用更复杂的形式。几天前我才开始学习编程,所以我写了它们,利用了我目前对 JavaScript 知之甚少的知识。我想知道我是否可以更有效地表达它们。
顺便提一下,我有一个具体的问题:
在1st Code
,我需要放置 var
吗?在 attackPoint = midRange
前和 attackPoint = highRange
在if/else
陈述?
第一个代码:
var lowRange = 190 + Math.floor(Math.random() * 21);
var midRange = 211 + Math.floor(Math.random() * 20);
var highRange = 231 + Math.floor(Math.random() * 25);
var randomHundred = 1 + Math.floor(Math.random() * 100);
if (randomHundred <= 70) {
var attackPoint = lowRange;
}
else if (randomHundred <= 90) {
var attackPoint = midRange;
}
else {
var attackPoint = highRange;
}
console.log(attackPoint);
第二个代码:
var lowRange = 190 + Math.floor(Math.random() * 21);
var midRange = 211 + Math.floor(Math.random() * 20);
var highRange = 231 + Math.floor(Math.random() * 25);
var emptyArray = [];
for (var i = 0; i < 100; i++) {
if (i < 70) {
emptyArray.push(lowRange);
}
else if (i < 90) {
emptyArray.push(midRange);
}
else {
emptyArray.push(highRange);
}
};
var attackPoint = emptyArray[Math.floor(Math.random() * 100)];
console.log(attackPoint);
最佳答案
改进方式一:
您不需要为所有 范围计算随机值,您只需要选定范围。也没有必要将 0..1
范围转换为 0..100
。您可以直接处理 0..1
范围。
var q = Math.random(), attackPoint;
if (q < 0.7) {
attackPoint = 190 + Math.floor(Math.random() * 21);
}
else if (q < 0.9) {
attackPoint = 211 + Math.floor(Math.random() * 20);
}
else {
attackPoint = 231 + Math.floor(Math.random() * 25);
}
console.log(attackPoint);
关于JavaScript:Math.random:如何选择 190 到 255 之间的随机数 "unevenly",而不是 "evenly"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34198408/
请原谅标题,我什至不确定如何标记我正在尝试做的事情。我在 DataFrame 中有如下所示的数据: Name Month Status ---- ----- -----
我有一些 XML,我想使用 python 中的 lxml 方法来解析。解析完元素后,我希望能够比较一些结构化对象(寻找增量)。 我需要解析大约 50 个 XML 文件,并且 XML 中的数据采用“不均
我无法找到针对这个非常具体的问题的解决方案。本质上,我有两个列表,每个列表有两个元素:[A, B] 和 [1,2]。我想创建一个嵌套循环,在第二个列表上迭代和扩展,并在每次迭代后添加第一个列表的每个元
我正在进行一项实验,需要我切换到 C++,我仍在学习它。我需要将文件中的数据读入二维数组,其中文件中的数据由 float 组成,以矩阵格式排列。但是,数据文件中矩阵的每一行都有不同的列数,例如: 1.
再会, 从我们的一位客户那里,我们得到了看起来像这样的 csv 导出: id | name | object_a | amount_a | object_b | amount_b
我有这 2 个数组代表相同的数据: array1 = [ {name: "max", age: 30}, {name: "paul"}, {name: "paul.Jack", age:
我还没有找到调整 broken axis example 底部和顶部图高度的解决方案。的 matplotlib . 顺便说一句:两个图之间的空间可以通过以下方式调整: plt.subplots_adj
我已经搜索过 SO 和其他在线资源,但无济于事。 有没有办法缩放 Axis ,使 z 分数更好地反射(reflect)从 0 到 1 和从 1 到 2(或任何其他等距分数)的实际差异? 如果我有一个
你知道为什么当正方形的边是奇数时下面的代码会产生扭曲的正方形吗? from turtle import * s = 67.0 pu();fd(s/2.0);rt(90.0);fd(s/2.0);pd(
我真的需要你的帮助,因为我不知道这是否可能或是否正确。 这是我的 HTML 因此,如您所见,我有一个 多个在里面。让我的整个事情变得复杂的是有 的事实 所有这些 的在 4 列中并排 float 。我
所以我正在尝试一个新的聊天室,我想将用户列表显示为两列。当房间里有两个人时 很好地分布在两列中。但是,当 li 的数量不均匀时,我会遇到以下问题。谁能看看我的代码,看看我做错了什么? 编辑:我删除了
我希望使用 tidyverse 离散化数值数据,目的是使用条形图绘制不同的数值范围,就好像数据是分类的一样,通过手动声明切割发生的位置,例如年龄组或收入范围。我希望间隔宽度不等。 到目前为止,我已经尝
如果您想在 190 到 255 之间选择一个随机数,期望均匀分布的结果,您需要的代码就像下面这样简单,对吗? 190 + Math.floor(Math.random() * 66); 但是,如果您更
http://jsfiddle.net/dq5T5/ 上面的 fiddle 显示了问题。 由于该行的背景为白色,因此当调整浏览器窗口大小时,图像下方最终会出现空白区域。 我只希望图像填满左栏的整个高度
这个问题在这里已经有了答案: Equal width flex items even after they wrap (2 个答案) 关闭 5 年前。
我是一名优秀的程序员,十分优秀!