在c中怎樣利用random從指定的幾個數字中隨機撒

2021-03-04 04:20:05 字數 5585 閱讀 7505

1樓:乁

先把你的那

copy些數字放在一個陣列或集合中,然後隨機產生下標比如你的數是: 2 5 8 9 4int numbers = ;

int index = random.next(0,5);

console.write(numbers[index]);

2樓:無毒歐陽鋒

random r=new random();

arrylist intarr=new arrylist();

arrylist.add(1);

arrylist.add(2);

arrylist.add(3);

arrylist.add(4);

return intarr(r.next(0,3));

手寫bai的,可du能有zhi

誤,dao大概就這內意容思

3樓:匿名使用者

先把你那指定的幾個數字放在一個陣列中,隨機出改陣列的索引號,然後根據所以號得到他的值

如果你那指定的幾個數字的個數是會變動的,那就用動態陣列,不明白在來問

如何用c#從一組數中隨機抽取數字?

4樓:匿名使用者

int array = ;//按照樓主所說的3個數dictionaryextract = new dictionary();//記錄每個數抽

取的次數

for (int i = 0; i < array.length; i++)

random ran = new random();

listlist = new list();//裝載抽取出來的數for (int i = 0; i < 抽取次數; i++)else}

5樓:匿名使用者

輸入:列表 輸出:隨機元素public t getrandomitem(ilist list){ if (list == null) throw new argumentnullexception("list"); int count = list.

count; if (count == 0) return default(t); int index = new random().next(count); return lis..

c#中怎麼將一堆數字中,隨機出一個 50

6樓:兄弟連教育北京總校

.***.frameword中提供了一個專門產生隨機數的類system.random,此類預設情況下已被匯入,程式設計過

程中可以直接使用。我們知道,計算機並不能產生完全隨機的數字,它生成的數字被稱為偽隨機數,它是以相同的概率從一組有限的數字中選取的,所選的數字並不具有完全的隨機性,但就實用而言,其隨機程度已經足夠了。

可以用以下兩種方法初始化一個隨機數發生器;

函式是這樣用,比如100至999的隨機數

random ran=new random();

int randkey=ran.next(100,999);

不過這樣會有重複,可以給random一個系統時間做為引數,以此產生隨機數,就不會重複了

第一種方法不指定隨機種子,系統自動選取當前時前作隨機種子:

random ra=new random();

第二種方法是指定一個int型的引數作為隨機種子:

int iseed=6;

random ra=new random(iseed);

下面我們要用到random.next()方法產生隨機數。

ra.next();

它返回一個大於或等於零而小於2,147,483,647的數,這並不滿足我們的需要,下面我們介紹它的過載函式和其它一些方法。

public virtual int next(int);

用法:ra.next(20)

返回一個小於所指定最大值(此處為20)的正隨機數。

public virtual int next(int minvalue, int maxvalue);

用法:ra.next(1,20)

返回一個指定範圍內(此處為1-20之間)的隨機數,我們在下面的例項中會用到此函式。

類system.random還有幾個方法分別是:

公共方法:

nextbytes用隨機數填充指定位元組陣列的元素。

nextdouble返回一個介於 0.0 和 1.0 之間的隨機數。

受保護的方法:

sample返回一個介於 0.0 和 1.0 之間的隨機數,只允許子類物件訪問。

以上介紹了隨機數的基本用法,下面我們用一個例項來做更進一步的介紹。要在一段數字區間內隨機生成若干個互不相同的隨機數,比如在從1到20間隨機生成6個互不相同的整數。

主要是下面兩個函式getrandomnum與getnum:

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

return arrnum;

}getrandomnum即是在區間[minvalue,maxvalue]取出num個互不相同的隨機數,返回的陣列包含著結果。

其中隨機數是這樣建立的 random ra=new random(unchecked((int)datetime.now.ticks));為什麼不用random ra=new random();(系統自動選取當前時前作隨機種子)

用系統時間做隨機種子並不保險,如果應用程式在一個較快的計算機上執行,則該計算機的系統時鐘可能沒有時間在此建構函式的呼叫之間進行更改,random 的不同例項的種子值可能相同。這種情況下,我們就需要另外的演算法來保證產生的數字的隨機性。所以為了保證產生的隨機數足夠"隨機",我們不得不使用複雜一點的方法來獲得隨機種子。

在上面的這段程式中,我們首先使用系統時間作為隨機種子,然後將上一次產生的隨機數跟迴圈變數和一個與系統時間有關的整型引數相乘,以之作為隨機種子,從而得到了每次都不同的隨機種子,保證了產生足夠"隨機"的隨機數。

函式getnum是一遞迴,用它來檢測生成的隨機數是否有重複,如果取出來的數字和已取得的數字有重複就重新隨機獲取。值得注意的是要用一同一個隨機數例項生成,所以ra要作為引數傳入getnum中,否則生成的數字會有重複。

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

n ;}

return tmp;

}最後就是要顯示出來,當點選一個button時取出的數字顯示在一個label中。

private void button1_click(object sender, system.eventargs e)

label1.text=temp; //顯示在label1中}

c#中如何從陣列中獲取一個隨機數

7樓:匿名使用者

最簡單的就是用random產生1個隨機數,隨機數的範圍為0~xx.length-1;這樣的話比如陣列是20個數,那麼殘生的隨機數n就在(0~19)之間,然後把n帶進陣列xx[n]就可以取出隨機索引的數了撒~ int xx = new int [3] ;

random r = new random(); int n = r.next(0, xx.length-1);xx[n]就是隨機取出的數

8樓:匿名使用者

通過使用random自動生成一個隨機數,確定陣列的下標,從而活得隨機一個陣列

string item=new string[4] ;

random r = new random();

string fi1 = item[r.next(item.length)];

9樓:匿名使用者

在c#中獲取隨機數有三種方法:

一.random 類random類預設的無參建構函式可以根據當前系統時鐘為種子,進行一系列演算法得出要求範圍內的偽隨機數.view sourceprint?

1    random rd = new random(); 2    int i = rd.next();這種隨機數可以達到一些要求較低的目標,但是如果在高併發的情況下,random類所取到的系統時鐘種子接近甚至完全一樣,就很有可能出現重複,這裡用迴圈來舉例view sourceprint? 1for (int i = 0; i < 10; i++) 2這個例子會輸出10個相同的"隨機數".

突顯出的問題:因為random進行偽隨機數的演算法是固定的,所以根據同一個種子計算出的數字必然是一樣的.而以當代計算機的執行速度,該迴圈幾乎是在瞬間完成的,種子一致,所以會出現10次迴圈輸出同一隨機數的情況.

二.guid 類system.guidguid (globally unique identifier) 全球唯一識別符號guid的計算使用到了很多在本機可取到的數字,如硬體的id碼,當前時間等.

所計算出的128位整數(16位元組)可以接近唯一的輸出.view sourceprint? 1    console.

writeline(guid.newguid().tostring());

計算結果是******xx-***x-***x-***x-************結構的16進位制數字.

三.rngcryptoserviceprovider 類system.security.

cryptography.rngcryptoserviceprovider rngcryptoserviceprovider 使用加密服務提供程式 (csp) 提供的實現來實現加密隨機數生成器 (rng)view sourceprint? 1rngcryptoserviceprovider csp = new rngcryptoserviceprovider(); 2byte bytecsp = new byte[10]; 3csp.

getbytes(bytecsp); 4console.writeline(bitconverter.tostring(bytecsp));因該類使用更嚴密的演算法.

所以即使如下放在迴圈中,所計算出的隨機數也是不同的.view sourceprint? 1for (int i = 0; i < 10; i++) 2view sourceprint?

1但是rngcryptoserviceprovider的計算較為繁瑣,在迴圈中使用會消耗造成大量的系統資源開銷,使用時需注意.

四.membership.generatepassword()membership是一個方便快捷的進行角色許可權管理的類,偶然發現一個很有意思的方法,跟隨機數也擦點邊吧view sourceprint?

01public static string generatepassword(int length, int numberofnonalphanumericcharacters); 02// 03// 摘要: 04// 生成指定長度的隨機密碼。 05// 06// 引數:

07// numberofnonalphanumericcharacters: 08// 生成的密碼中的標點字元數。 09// 10// length:

11// 生成的密碼的字元數。長度必須介於 1 和 128 個字元之間。 12// 13// 返回結果:

14// 指定長度的隨機密碼。

例:view sourceprint? 1for (int i = 0; i < 10; i++) 2

在VS2019中利用C連線遠端mysql資料庫時字串要怎麼寫

string query select from guestbook mysqlconnection myconnection new mysqlconnection server localhostone user id rootone password database hiwperone my...

什麼是類庫?在C中怎樣設計類庫,在C 中怎樣設計類庫?

類庫 class library 是一個綜合性的物件導向的可重用型別集合,這些型別包括 介面 抽象類和具體類。類庫可以解決一系列常見程式設計任務 包括諸如字串管理 資料收集 資料庫連線以及檔案訪問等任務 還可以解決多種專用開發任務 控制檯應用程式 桌面應用程式 web應用程式等 類庫字面意思就是類的...

C 中怎樣擷取字串,C string中怎樣從字串裡擷取出字元

利用cstring類的成員函式trim把空格去掉,然後統計行的字元數length,按照長度2,14,14,等劃分成一個cstring陣列 可以用mid成員函式 然後利用把cstring轉化成char型別陣列,利用atof函式把該陣列的數轉化數值,然後判斷觀測值,大於1的data,放入到data1 陣...