C中怎麼在自己規定輸入的一些數字中隨機抽出

2021-05-20 13:39:07 字數 5751 閱讀 1289

1樓:橙

我可以告訴你思路:想將輸入的數字存到一個陣列裡面。再通過隨機數去0到陣列的長度的隨機數,通過陣列的下標獲取數字了。下標就是隨機生成的數字。

2樓:柳菊宮巳

什麼叫「自己規定輸入的一些數字」。不理解你這句話的意思。自己輸入或者規定輸入都通順。

兩個合起來就不通順了。如果你的意思是按照一定規定讓使用者自己輸入的話,那還是自己輸入的意思啊。何必搞的那麼複雜呢?

我也只能按照這種意思來理解了。

不管使用者按照什麼規定來輸入,輸入的數字最終都要放到一個儲存變數裡存放,也許是陣列,也許是索引器,等等吧不管是什麼反正都得用個變數負責儲存對吧。我們這裡就以簡單一些的陣列為例吧:int

number

=new

int;

//假設上面就是使用者按照你的規定輸入的陣列。

randomr=

newrandom();//定義一個隨機數生成器,你要隨機抽取當然要有這個東西。

intai

=r.next(number.length);//隨機獲得一個數並賦值給變數ai。

//r.next()這個方法就是負責獲得隨機數的方法,它有3個過載,第一個是沒有引數的,返回結果是一個非負隨機數;第二個過載是1個引數的也就是這次我們用到的,它的意思是獲得一個上限為引數值的非負隨機數,這個引數必須大於等於0,但返回值的最大值為引數減一;第三個過載是2個引數的過載,第一個引數為獲取隨機數的最小邊界值,第二個為獲取隨機數的最大邊界值。

我們取得隨機數的目的是為了讓這個隨機數當做陣列中的下標,這樣取得的陣列中的值就是隨機產生的了。也就是:number[ai]

這個數就是陣列中的隨機引數的數字了。

在c#中,怎樣利用random從指定的幾個數字中隨機取出某個數字

3樓:乁

先把你的那

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

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

console.write(numbers[index]);

4樓:無毒歐陽鋒

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大概就這內意容思

5樓:匿名使用者

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

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

c# 有一組數,每個數出現的概率不同,如何從這組數中隨機抽出幾個數,怎麼實現? 15

6樓:匿名使用者

static void main(string args)

////// 獲取若干個不同隨機數字

////// 數字與出現概率的配置

/// 獲取數字個數

///static listgetrandnumlist(dictionarysetting, int num)

return ret;

}///

/// 獲取單個隨機數字

////// 數字與出現概率的配置

///static int getrandnum(dictionarysetting)

random rand = new random();

double r = rand.nextdouble() * total;   //取一個隨機數,乘以總概率值,對映到總概率值的區間內

total = 0;

foreach (int key in setting.keys)

}return setting.keys.last();    //返回最後一個數,對應rand.nextdouble()隨機到1.0的情況}

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

c#中,怎麼產生一個隨機數?

7樓:匿名使用者

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

random ran=new random();

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

8樓:匿名使用者

random random1 = new random();//產生0到1000的隨機數int i1=random1.next(0,1001);//產生0到9的隨機數

int i2=random1.next(0,10);//產生0到100的隨機數int i3=random1.next(0,101);

9樓:匿名使用者

int random = new random().next();

10樓:shine戚七七

random rd = new random();

int i = rd.next(1,100); //1到100之間的數,可任意更改

11樓:匿名使用者

random rd = new random();

int i = rd.next();

next()方法進行了過載,可以通過設定不同的形參來達到自己想要的隨機數。

另外,c#與c++不同,它一開始就已經對他的隨機數運算元進行了預設設定(c++需要程式設計師自己設定,否則每次執行程式時,所產生的隨機數序列是一致的)。

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

12樓:匿名使用者

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}

13樓:匿名使用者

輸入:列表 輸出:隨機元素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#中如何從陣列中獲取一個隨機數

14樓:匿名使用者

最簡單的就是用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]就是隨機取出的數

15樓:匿名使用者

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

string item=new string[4] ;

random r = new random();

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

16樓:匿名使用者

在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

用C語言寫程式,輸入一些數,如果正數相加,輸出結果,是負數就不加,是0就結束程式

include int main while x printf d n s return 0 include int main printf d sum return 0 用c語言編寫程式。輸入一些整數,程式設計計算並輸出其中所有正數的和,輸入負數或零時,表示輸入資料結束。60 int functi...

怎樣在中的一些指定區域輸入文字而其它地方

方法如下 1 選擇需要編輯的區域 2 選擇審閱 限制編輯 3 勾選編輯限制,啟動強制保護。檢視 工具欄 窗體 在出現的 窗體 工具欄上,單擊 文字型窗體域 插入到專文件中,然後單擊右側的 保護屬窗體 按鈕 這樣就只能在窗體上進行輸入了。當然,也可以通過 工具 保護 文件來進一步保護窗體。word中如...

excel中怎麼使計算的結果去對應一些數字區間,然後生成新的數值

區間對應使用vlookup比較方便,例如你的例子可以這樣寫公式 vlookup a1,2 上面公式裡面的a1可以是另外一個計算公式 在b1中輸入或複製貼上下列公式 lookup a1,e1 f2 或 vlookup a1,e f,2 下拉填充 excel中根據數值確定所屬區間,並將計算數值賦值到對應...