c我往string列表裡迴圈新增隨機數,如何確保不新增重複的數

2021-05-02 22:10:17 字數 3553 閱讀 4072

1樓:怪蜀黍丨loli控

list 有contain的方法,新增隨機數前先判斷下。比如你這個for (int i = 0; i < 6; i++)else}

2樓:麒麟也涅槃

新增之前先去檢查是否存在,最容易想到的就是每次插入之前先去迴圈列表檢查是否存在,如果存在就不在新增,如果不存在就新增,當然也有其他的方式

3樓:匿名使用者

再寫個迴圈 每次新增資料的時候 先判斷下這個數字是否已存在

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

4樓:匿名使用者

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

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

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

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

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

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

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

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

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

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

5樓:暖蘭菲

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

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

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

6樓:匿名使用者

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

7樓:匿名使用者

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

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

c# 如何生成不重複的隨機數?

8樓:

建議將生成的隨機數建立雜湊表,每次插入雜湊表前先檢查是否已經存在此數字,若存在則重新生成。

9樓:匿名使用者

先準備好上萬個資料的陣列(資料不重複)

每次隨機取這個陣列裡的一個數,取完同時刪除這個資料(每次取都在陣列寬度範圍內的隨機索引取值)這樣說明白了吧 。

10樓:情緣一生遠

illisecond其實都是一樣的

所以隨機數也一樣

樓上的也不對,那是沒區別

你可以用下面辦法試試看

system.random a= new random(system.datetime.now.millisecond+i);

+個i,讓種子每次都不一樣

11樓:紙迷金醉

也可以將隨機數插入二叉平衡樹,同樣是有相同的不插入~

最後遍歷就是所有的了。

不知道那個效率高。。。。。

12樓:佘宜介彥露

使用random生成隨機數,並將其儲存到陣列中,待下次生成時,陣列迴圈遍歷,看是否已經存在,不存在就取這個值,並儲存到陣列中,如果存在就重新取隨機值,直到不存在為止,迴圈即可

c#怎麼把一組隨機數放到陣列裡不重複

13樓:匿名使用者

邊產生隨機數邊放進陣列。同時維護一個hash表,指示這個隨機值是否放進去過。如果hash中顯示放進去過,重新取一個隨機值。

14樓:手機使用者

c#有一個字典類,該字典類有key和value屬性,一一對應. key值不能重複,value值可以.

15樓:

以下**將10個隨機數到一個int陣列中

class program

while (array.indexof(arr, val) >= 0);

arr[i] = val; }}}

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

16樓:**最大功能

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

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

else}

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

17樓:匿名使用者

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

18樓:

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;

19樓:智翊端秋穎

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

迴圈6次就完了。

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

20樓:丁洪飛

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

random rd = new random();

while(n <10)

else

}console.readline();

21樓:安靜的

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

C中的String和string有什麼區別?還有ref關鍵

在c 中,string指的是一個類 顏色是綠的 首字母大寫 而string是關鍵字 藍色字 他們表示的都是字串,沒有區別。ref通俗的講就是傳地址,傳入的引數若在方法中有變化,那麼在呼叫的地方也會跟著改變 不加此關鍵字的話,傳入的值就是一個複本而已。string 和 string 沒有區別 stri...

c 如何將string 轉換為char

char p new char a.size strcpy p,a.data delete p 不能通過a.data 和a.c str 返回的指標修改string的內容,但像上面拷貝一份內容就可以 你可以將char型別變數宣告為一個陣列,如b array 0.100 of char,這相干b中就可以...

c中如何把string型別轉化為datatime

我這裡有種思路 剛學到得,希望對你有用,拋磚引玉 string converttime 2012 12 12 13 00 21 872 datetime mdate1 datetime.parseexact converttime,yyyy mm dd hh mm ss fff null conve...