簡體   English   中英

生成不包含某些數字的隨機數

[英]generate random number not including some numbers

有沒有辦法從一組不包含某些數字的數字中生成一個隨機數? 例如 - 20-50的隨機數,不包括25,27,34。

生成20到50范圍內的數字然后丟棄不需要的數字的方案將引入統計偏差 (您將傾向於增加所得分布的方差;特別是如果您的生成器是線性同余的)。

最好的方法是在20 - 47范圍內生成(稱為繪圖x說)然后使用進行調整

if (x >= 25) ++x; if (x >= 27) ++x; if (x >= 34) ++x;

@Yeldar Kurmangaliyev的LINQ實施評論:

var allowed = Enumerable.Range(20, 31).Except(new int[] { 25, 27, 34 });

Random rand = new Random();

int randomNum = allowed.ElementAt(rand.Next(0, allowed.Count()));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM