1樓:
首先確定隨機數的大小範圍和型別 比如:
[1,100] 的整數
然後是隨機數的多少? 比如按照上面的設計 如果 超過 100. 不可能不重複
不重複水機數的方法很多
我一般按集體需求來做:
不如範圍很大,隨機數很少:從10000個裡面取10個 這樣,直接隨機 做簡單判斷就可以
random random = new random();
int n=random.next(1,10000);
然後判斷n有沒有了
用迴圈就可以了
但還有一種需求是:從100裡面取100個(或者90個)這樣的時候,我會聲請一個陣列,把1到100都存起來然後用洗牌的方式來交換這個陣列裡面的數
然後隨機抽取,用一個就少一個
反正就是做個偽隨機
2樓:匿名使用者
random ro=new random(1);//定義隨機數類
byte by=new byte[10];//定義位元類,8位無符號數,即0-256
ro.nextbytes(by);//產生10位隨機數,比較簡單
3樓:匿名使用者
參考一下吧
c#有沒有函式能生成不重複的隨機數,比如1
4樓:
c#有隨機器random,可以生成數字。**一般這樣:
random rand = new random(); //這個是當前時間作為隨機種子,生成的數字有可能重複,機率小。
rand.next(1, 10000);生成1與10000之間的int
如果想重複的機率小一些,就給random()一個種子
long tick = datetime.now.ticks;
random ran = new random((int)(tick & 0xffffffffl) | (int) (tick >> 32));
但也不是絕對的,機率非常小,幾乎可以不計。如果非要絕對不復重,你只有生成數字後去和以前生成的數字進行比較(寫個遞迴,但效能不好)。
5樓:空心蓮
可以給所有的隨機數設屬性(true or false)
c#生成制定範圍和數量的隨機數,要求不重複
6樓:**最大功能
listlist = new list();//用來存放所要的隨機數random r = new random();
for (int i = 0; i < 5; i++)//弄5個隨機數
else}
c# 如何生成不重複的1-100隨機數。
7樓:匿名使用者
有兩種思路:1、隨機生成一個1-100的數,然後判斷重複,如果重複再生成一次;
2、建立一個陣列,元素內容為1-100,對元素隨機排序。
請參考下面的**
public void generaterandomnums()value = rand.next(1, 21);
if (!list.contains(value))}foreach (int temp in list).", temp);}}
第二種思路:
int a = ;
int b = a.orderby(x => guid.newguid()).toarray();
foreach (int v in b)
console.writeline(v);
console.readkey();
8樓:陽光的雷咩咩
random r = new random();
int nums = enumerable.range(1, 100)
.orderby(x => r.next()).toarray();
foreach (int n in nums)console.writeline(n);
c# winfrom 隨機生成5個在0 到50直接的隨機數,切不重複,怎麼實現啊
9樓:斬光_者
主要函式:
public listgetnum()
else
else}}
return result;}
10樓:匿名使用者
random r = new random();
dictionarydic = new dictionary();
while (dic.count + 1 < 6)這個不是正態隨機
如何讓c#產生不重複的隨機數
11樓:匿名使用者
「隨機數 和 不重複 是相悖的兩個概念」。因此這個問題理論上無解。
隨機數,(一般c#中)指的是隨機生成的一個整型或者浮點型數字。
不重複,指的是在一個陣列中,每個元素都有唯一性。
(我們比方說,要生成10個不重複的隨機數)
如果在一個範圍內生成多個隨機數, 那麼肯定是會有生成「重複」的機率, 如果要做到不重複,1、要麼每次生成時,對範圍進行重新判定,
2、要麼是生成後,比對已生成的資料,如果相同就重新生成。
無論哪一種做法,都可以實現「生成一組看似隨機的不重複資料」,但是這個不能叫「隨機數」。
1、的做法是指定新範圍,從邊界規避掉重複的可能性,所以這一組10個資料其實取值範圍是不同的,因為不能叫做「同一組隨機數」。
2、的做法其實是會生成重複隨機數的, 只是我們把它過濾掉了,因此也不是「不重複隨機數」。
所以這個問題如果不去鑽牛角尖,有這麼兩種簡單做法去實現,如果嚴謹的去**,其實是個悖論。
12樓:暖蘭菲
要不重複的話,就用guid類把
guid g = guid.newguid(); //建立一個guid的物件
console.writeline(g.tostring());//然後tostring() 你用控制檯輸出看看,這種隨機產生的十六進位制數字,會重複的機率幾乎沒有。
13樓:匿名使用者
static double buf = 0.5;
private static double ran()while (math.abs(num - buf) < 0.000001);
buf = num;
return (num);
}//0.00001表示接近於0的實數(伊普斯龍)//主程式呼叫 ran()即可,例如: r=ran();
***************===分割線********************
如果程式較小:可以如下
private static double ran()
14樓:匿名使用者
如果你的隨機數是整數,那麼不可能不重複。隨機數的產生次數,超過了整數的範圍,必然會出現重複。如果不考慮範圍的問題,每次產生隨機數後,把它記下來,用於檢查下次隨機數是否重複。
如果不是整數,你可以用guid來避免重複
c#最簡單的不重複隨機數生成
15樓:丁洪飛
string temp = ""; //臨時容器int n =0;
random rd = new random();
while(n <10)
else
}console.readline();
16樓:安靜的
去看看這個吧 類似的!希望對於有幫助!
excel隨機生成數字,EXcel隨機生成數字
千秋遐想 excel隨機數函式 太極健 隨機數rand 取整int round四捨五入 在a6中輸入以下公式後右拉到e6 round rand 50 100,或 int rand 50 100 若要生成 a 與 b 之間的隨機實數,請使用 rand b a a如果要使用函式 rand 生成一隨機數,...
c如何生成10位隨機數,C 中怎麼生成4位隨機數
方法1 public static int getrandom1 int minvalue,int maxvalue,int count array.sort keys,items int result new int count array.copy items,result,count retu...
c語言中如何生成0到1的隨機數,c語言中如何生成1個0到1的隨機數
八哥說科技 c語言中生成1個0到1的隨機數可以執行語句 float b rand rand max 1.0 解析 標準c庫中函式rand 可以生成0 rand max之間的一個隨機數,其中rand max 是stdlib.h 中定義的一個整數,它與系統有關。rand 函式沒有輸入引數,直接通過表示式...