1
1
# 简单但错误的解决方案
2
2
3
- 最简单但错误的解决方案是从 ` min ` 到 ` max ` 生成一个值并取它四舍五入的值 :
3
+ 最简单但错误的解决方案是生成一个范围在 ` min ` 到 ` max ` 的值,并取对其进行四舍五入后的值 :
4
4
5
5
``` js run
6
6
function randomInteger (min , max ) {
@@ -11,11 +11,11 @@ function randomInteger(min, max) {
11
11
alert ( randomInteger (1 , 3 ) );
12
12
```
13
13
14
- 这个函数是能起作用的,但不正确。获得边缘值 ` min ` 和 ` max ` 的概率是其他值的两倍 。
14
+ 这个函数是能起作用的,但不正确。获得边缘值 ` min ` 和 ` max ` 的概率比其他值低两倍 。
15
15
16
- 如果你多次运行这个例子 ,你会很容易看到 ` 2 ` 出现的频率最高。
16
+ 如果你将上面这个例子运行多次 ,你会很容易看到 ` 2 ` 出现的频率最高。
17
17
18
- 发生这种情况是因为 ` Math.round() ` 从间隔 ` 1..3 ` 获得随机数并按如下所示进行四舍五入 :
18
+ 发生这种情况是因为 ` Math.round() ` 从范围 ` 1..3 ` 中获得随机数,并按如下所示进行四舍五入 :
19
19
20
20
``` js no-beautify
21
21
values from 1 ... to 1.4999999999 become 1
@@ -27,12 +27,12 @@ values from 2.5 ... to 2.9999999999 become 3
27
27
28
28
# 正确的解决方案
29
29
30
- 这项任务有很多正确的解决方案。其中之一是调整间隔边界。为了确保相同的时间间隔 ,我们可以生成从 0.5 到 3.5 的值,从而将所需的概率添加到边缘 :
30
+ 这个题目有很多正确的解决方案。其中之一是调整取值范围的边界。为了确保相同的取值范围 ,我们可以生成从 0.5 到 3.5 的值,从而将所需的概率添加到取值范围的边界 :
31
31
32
32
``` js run
33
33
* ! *
34
34
function randomInteger (min , max ) {
35
- // now rand is from (min-0.5) to (max+0.5)
35
+ // 现在范围是从 (min-0.5) 到 (max+0.5)
36
36
let rand = min - 0.5 + Math .random () * (max - min + 1 );
37
37
return Math .round (rand);
38
38
}
@@ -41,7 +41,7 @@ function randomInteger(min, max) {
41
41
alert ( randomInteger (1 , 3 ) );
42
42
```
43
43
44
- 另一种方法是使用 ` Math.floor ` 作为从 ` min ` 到 ` max+1 ` 的随机数:
44
+ 另一种方法是使用 ` Math.floor ` 来取范围从 ` min ` 到 ` max+1 ` 的随机数:
45
45
46
46
``` js run
47
47
* ! *
@@ -63,4 +63,4 @@ values from 2 ... to 2.9999999999 become 2
63
63
values from 3 ... to 3.9999999999 become 3
64
64
```
65
65
66
- 所有间隔的长度相同,所以最终能够均匀分配。所有整数出现的概率都相同了 。
66
+ 所有间隔的长度相同,从而使最终能够均匀分配 。
0 commit comments