c產生隨機數 不重複,C 產生隨機數 不重複

2021-05-11 15:48:57 字數 4124 閱讀 8405

1樓:

private const int num = 3; //數目

private const int maxvalue = 5; //最大數

private const int minvalue = 1; //最小數

public int sort(int num) }

}return num;

}public int getnum(int arrnum, int tmp, int minvalue, int maxvalue, random ra)

n++;

}return tmp;

}public string getrandomnum(int num, int minvalue, int maxvalue)

this.sort(arrnum);

for (int i = 0; i

return strnum;

}this.getrandomnum(rednum, redminvalue, redmaxvalue).trim();

輸出這個值,呼叫這個方法就可以了,總結了這些方法你以後不關多少範圍和幾個不重複只要改最上面3個變數就行了。不要為了簡單而簡單......

連隨即成聲的數排序功能都實現了

2樓:匿名使用者

int i1=r.next(5);

int i2=r.next(5);

while (i2=i1) i2=r.next(5);

int i3=r.next(5);

while(i3=i2||i3=r1) i3=r.next(5);

大體上就是這個意思了

本人不是學c#的,估計會有語法的錯誤,你能看懂就行了

c#最簡單的不重複隨機數生成

3樓:丁洪飛

string temp = ""; //臨時容器int n =0;

random rd = new random();

while(n <10)

else

}console.readline();

4樓:安靜的

去看看這個吧 類似的!希望對於有幫助!

如何讓c#產生不重複的隨機數

5樓:匿名使用者

「隨機數 和 不重複 是相悖的兩個概念」。因此這個問題理論上無解。

隨機數,(一般c#中)指的是隨機生成的一個整型或者浮點型數字。

不重複,指的是在一個陣列中,每個元素都有唯一性。

(我們比方說,要生成10個不重複的隨機數)

如果在一個範圍內生成多個隨機數, 那麼肯定是會有生成「重複」的機率, 如果要做到不重複,1、要麼每次生成時,對範圍進行重新判定,

2、要麼是生成後,比對已生成的資料,如果相同就重新生成。

無論哪一種做法,都可以實現「生成一組看似隨機的不重複資料」,但是這個不能叫「隨機數」。

1、的做法是指定新範圍,從邊界規避掉重複的可能性,所以這一組10個資料其實取值範圍是不同的,因為不能叫做「同一組隨機數」。

2、的做法其實是會生成重複隨機數的, 只是我們把它過濾掉了,因此也不是「不重複隨機數」。

所以這個問題如果不去鑽牛角尖,有這麼兩種簡單做法去實現,如果嚴謹的去**,其實是個悖論。

6樓:暖蘭菲

要不重複的話,就用guid類把

guid g = guid.newguid(); //建立一個guid的物件

console.writeline(g.tostring());//然後tostring() 你用控制檯輸出看看,這種隨機產生的十六進位制數字,會重複的機率幾乎沒有。

7樓:匿名使用者

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()

8樓:匿名使用者

如果你的隨機數是整數,那麼不可能不重複。隨機數的產生次數,超過了整數的範圍,必然會出現重複。如果不考慮範圍的問題,每次產生隨機數後,把它記下來,用於檢查下次隨機數是否重複。

如果不是整數,你可以用guid來避免重複

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# 如何生成不重複的1-100隨機數。

11樓:匿名使用者

有兩種思路: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();

12樓:陽光的雷咩咩

random r = new random();

int nums = enumerable.range(1, 100)

.orderby(x => r.next()).toarray();

foreach (int n in nums)console.writeline(n);

c#生成6個隨機數,要求1到33之間不重複的隨機數,要最簡單的寫法

13樓:匿名使用者

很早以前用過那隨機數的方法,不能保證不重,只能生成一個記下來再生成一個匹配一下

14樓:

int xl = new int();

int tmp = 0;

string output = "the numbers are: ";

random rd = new random();

for (int i = 0; i < 33; i++)for (int i = 0; i < 6; i++)return output;

15樓:智翊端秋穎

1-33放在一個集合裡面,隨機數=1到集合長度。隨機一個,就取出集合對應位置的數字,並且刪除這行。繼續隨機數=1到集合長度,再取。

迴圈6次就完了。

c#生成制定範圍和數量的隨機數,要求不重複

16樓:**最大功能

listlist = new list();//用來存放所要的隨機數random r = new random();

for (int i = 0; i < 5; i++)//弄5個隨機數

else}

c 中產生不重複的隨機數

解題思路 這個題目要解決兩個問題 一是產生隨機數 二是不能重複。第一個問題 產生隨機數。在c 中要產生隨機數必須用到兩個函式 srand 和rand 函式,使用這兩個函式必須包含標頭檔案 其中rand 是產生一個偽隨機數,比如 int a rand 函式返回值的取值範圍是int型別的取值範圍,如果要...

c怎樣生成隨機數C怎樣生成隨機數

random類預設的無參構造來 函式可自以根據當前系統時鐘為種子,進行一系列演算法得出要求範圍內的偽隨機數。random rd new random rd.next 1,10 生成1 10之間的隨機數,不包括10 guid 類 guid globally unique identifier 全球唯一...

C語言中如何產生隨機數及其原理,C語言中如何產生一個隨機數及其原理

使用函式 rand 舉例 int rrr rand 100 則產生 0,99 的隨機數 使用時請增加包含檔案 include c語言怎樣產生一定範圍的隨機數?編譯環境為 vs2013 產生1到3的整型隨機數的 如下 include include include define max 3 這個函式的...