看板 C_Sharp 關於我們 聯絡資訊
※ 引述《linxiaoxi (葡萄神手)》之銘言: : ※ 引述《kidnaper (弗卡夏)》之銘言: : : 各位大大我想請問一下!! : : 我想產生56個數隨機亂數,亂數的範圍在1~7 : : Random.rand1=new rand random ; : : rand.Next(1,8); : : 上述是否可以產生一個隨機1~7之間的亂數!! : : 然而要如何一次產生56個!!這個我就不會了!! : : 謝謝!! : rand.Next(1,8);可以產生一個隨機1~7之間的亂數 : 如果要一次產生多個亂數,可以有兩種方法: : 1)for(int i = 0; i <= 56; i++) : { : 你上面的程式代碼 : } : 2)// Create a byte array to hold the random value. : byte[] randomNumber = new byte[56]; : // Create a new instance of the RNGCryptoServiceProvider. : RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider(); : // Fill the array with a random value. : Gen.GetBytes(randomNumber); : 這樣randomNumber這個byte陣列就是亂數陣列了 : 然后使用的時候,把每個byte轉int類型,然后%8就可以了 我用第一個方法 for (int i = 0; i < 56; i++) { Random rand1=new Random(); rand1.Next(1, 8); Console.Write(rand1); } 但是輸出的時候是產生56次的 "System.Random"....怎麼會這樣! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.127.27.212
james732:int x = rand1.Next(1, 8); Console.Write(x); 08/18 15:55
linxiaoxi:推 james732 08/18 15:56
kidnaper:果然可以產生56個數!!介於1~7之間!!但是.我按了幾次的結 08/18 15:59
kidnaper:果,通常是555...222...甚至只有一個數字!!不太隨機 08/18 16:00
ericinttu:一般的取亂數, 不適用在單純的for-loop裡一直狂取. 08/18 16:29
ericinttu:時間因子都是同一個, 所以得到的亂數值也都會是重覆值. 08/18 16:30
linxiaoxi:推ericinttu,所以推薦使用我提供的第二種方法 08/18 16:37
ericinttu:那我應該推樓上你的第二個方法 XD 08/18 16:55
kidnaper:是的~把random rand1= new random 放到迴圈上面即可!! 08/18 17:03
kidnaper:非常謝謝大家的意見^^~ 08/18 17:03
TW1943:把Random rand1=new Random(); 放到外面 (for上) 08/21 02:19