(新)控制隨機數概率:演算法精簡了一下
如:取 1~10 之間的隨機數,那麼他們的取值範圍是:
整數區間概率1
[0,1)
0.12
[1,2)
0.13
[2,3)
0.14
[3,4)
0.15
[4,5)
0.16
[5,6)
0.17
[6,7)
0.18
[7,8)
0.19
[8,9)
0.110
[9,10)
0.1如果調整2的概率為0.5,那麼1~10之間的隨機數取值區間與其它值的概率都會發現變化 如下:
最小取值範圍 = 0
最大取值範圍 = 最小取值範圍 + 概率 * 10(分成10份)
整數區間概率1
[0,0.55)
≈ 0.055
2[0.55,5)
0.53
[5,5.55)
≈ 0.055
4...
≈ 0.055
5...
≈ 0.055
6...
≈ 0.055
7...
≈ 0.055
8...
≈ 0.055
9...
≈ 0.055
10...
≈ 0.055
然後呼叫隨機函式生成1~10之間的隨機數,如果生成的隨機數在某個整數的取值範圍內,那麼就輸出當前整數。
/** @author: 破殼而出的蝌蚪
* @部落格:
* @date: 2019-01-03 15:03:33
* @last modified by: mikey.zhaopeng
* @last modified time: 2019-01-03 15:04:17
*/'use strict';
class glrandom min 最小整數值
* @param max 最大整數值
* @param percentage 概率數 [值,百分比]
*/constructor(min, max, percentage = new map())
get percentage()
return this._percentage;
}/**
* 分配比例
* @param map 設定 值-百分比
*/set percentage(map) , 1);
for (let i = this.min; i < this.max; i++) else }}
/*** 根據比例生成取值範圍
*/range()
}/**
* 生成隨機數
*/create()
}return null;
}}
// 樣本
js隨機數設定概率
有時候需要產生隨機數。並讓這些隨機數出現以概率的方式出現 下面舉個例子 隨機產生1 8的整數,希望1的概率是50 2的概率是10 3的概率是10 4的概率是10 5的概率是5 6的概率是5 7的概率是5 8的概率是5 想法 先隨機1 100的隨機整數 然後出現的隨機數在1 50的概率為50 由此可以...
概率 隨機數演算法
int generate01 int func else if num1 0 num2 1 return ret int generaterandomnum int max int bit num 0,i 0 int result 0 while 0x01 bit num max bit num w...
Eddy Walker(隨機數猜概率)
題意 n個點的環,初始在0,可以隨機向前向後,n個位置都走完,最後停在m的概率,最後輸出前i組概率的乘積 題解 打表發現,1 n 1的點概率為 include include include include include include include include include includ...