1. 程式人生 > >C# .NET Random 生成隨機數字和字母

C# .NET Random 生成隨機數字和字母

1:隨機數生成器

類 Random 是 .NET 的偽隨機數生成器,要生成各種型別的隨機數,必須先得到它的例項物件,然後再生成隨機數

2:種子

隨機數的生成是從種子值開始。 如果反覆使用同一個種子,就會生成相同的數字系列,產生不同序列的一種方法是使種子值與時間相關

3:物件例項

預設情況下,Random 類的無引數建構函式使用系統時鐘生成其種子值

引數化建構函式可提供一個 Int32 型別的數字為起始值

4:生成方案

方案1:只例項化一個物件,多次方法呼叫

?
Random rnd = new Random();
int i1 = rnd.Next(10); int i2 = rnd.Next(10); // 簡單,方便,常用,生成的數字分佈均勻,每個數字返回的可能性均相等。 // 一般是例項為靜態物件,以減少例項化的次數,避免產生相同的種子值,如下:
?
private static RNGCryptoServiceProvider rand = new RNGCryptoServiceProvider();

方案2:每次方法呼叫都用一個新的例項(無參)

?
Random rnd1 = new Random(); int i1 = rnd2.Next(10); Random rnd2 = new Random(); int i2 = rnd2.Next(10); // 兩個隨機數十有八九相同 // 預設種子值是從系統時鐘派生而來的,具有有限的解析度。 // 因此,通過呼叫預設建構函式而頻繁建立的不同物件將具有相同的預設種子值,因而會產生幾組相同的隨機數。

解決方案:

阻塞當前執行緒一小段時間

?
Random rnd1 =
new Random(); System.Threading.Thread.Sleep(500); Random rnd2 = new Random();

或者:應用一個演算法來區分每個呼叫的種子值。

例如,下面的程式碼使用右移位運算子為多個可以使用相同時間值初始化的 Random 物件(在 1 和大約 28 個物件之間)生成不同的種子值。

?
int count = 4; Random[] rnds = new Random[count]; for (int i = 0; i < count; i++) { rnds[i] = new Random(unchecked((int)(DateTime.Now.Ticks >> i))); }

5:通用數字和字母隨機生成方案

相關推薦

C# .NET Random 生成隨機數字字母

1:隨機數生成器 類 Random 是 .NET 的偽隨機數生成器,要生成各種型別的隨機數,必須先得到它的例項物件,然後再生成隨機數 2:種子 隨機數的生成是從種子值開始。 如果反覆使用同一個種子,就會生成相同的數字系列,產生不同序列的一種方法是使種

java生成隨機數字字母組合

public static String getCharAndNumr(int length) {     String val = "";     Random random = new Random();     for (int i = 0; i < length

深入PHP獲取隨機數字字母的方法詳解 微信牛牛大廳房卡出售

transform his UNC mic class 定義函數 種子 生成 瀏覽器 微信牛牛大廳房卡出售QQ:2164097691 下載地址:h5.hubawl.com 第一種方法 代碼如下:   $FileID=date("Ymd-His") . ‘-‘ . ra

C#判斷字串是否只有數字字母組成(Regex.IsMatch)

目的:判斷字串是否只有數字和字母組成,防止出現“亂碼”,以及判斷字串長度; 主要功能函式:System.Text.RegularExpressions.Regex.IsMatch(strMessage, pattern) strMessage:要判斷的字串; pattern

Java基礎之隨機生成數字字母

字符集 其中 大寫 排列 += 例子 order ascii碼表 方法 字母與數字的ASCII碼 目 前計算機中用得最廣泛的 字符集及其編碼,是由美國國家標準局(ANSI)制定的ASCII碼(American Standard Code for Information In

c# 生成指定範圍的數字字母組合隨機數

private static char[] constant =  {  '0','1','2','3','4','5','6','7','8','9',  'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o'

python3-隨機生成10位包含數字字母的密碼

pen digi amp 列表 randint ice its int and 方法一: 知識點:random.sample(sequence, k) 從指定序列中隨機獲取指定長度的片斷 import random,string num=string.ascii_lett

java利用數字字母隨機組合生成隨機數

思路:如果區分大小寫的話,那麼大寫算是一類,小寫算是一類,數字算是一類, 那麼通過    Random rand=new Random();這行程式碼隨機生成代表每一類的的生成器。 如果隨機產生的值為0,則產生的是數字,如果隨機產生的是1,則代表要產生大寫字母, 如果隨機產生的值

js生成隨機碼(只含有數字字母隨機碼)

生成 and pos ++ 最小 lag 組合 固定 return /*** randomWord 產生任意長度隨機字母數字組合** randomFlag 是否任意長度 min 任意長度最小位[固定位數] max 任意長度最大位*/ function randomWord(

對於卡券類兌換的,隨機生成兌換碼(數字字母的字串)

package com.test; import java.util.Random; public class RedeemCodeUtils { public static void main(String[] args) { String st1 = creat

java隨機生成××到××位長度字串,數字字母組合(6-13位舉例子)

/** * 目的 :獲取隨機 6-13之間隨機數 包含 6 和 13 * (rd.nextDouble())隨機返回0-1之間的數 不包括1 *  乘以8 隨機產生0-8之間的數 不包括8 *  (int)轉換為整型 則隨機產生0-7之間的整數 */ public stati

QTP生成隨機數字+字母

隨機 常量 strong for size rand 過程 random 返回函數 以下函數實現隨機生成17位數(包括字母和數字),仍有改進的空間,可根據具體要求適當修改 Dim targetstring targetstring = targetrandstring("

JS生成隨機的由字母數字組合的字串

前言 最近有個需求,是需要生成3-32位長度的字母數字組合的隨機字串,另一個是生成43位隨機字串。 方法一 奇妙的寫法 1 Math.random().toString(36).substr(2);   輸

PHP生成隨機字串(字母+數字

當我們要生成一個隨機字串時,總是先建立一個字元池,然後用一個迴圈和mt_rand()或rand()生成php隨機數,從字元池中隨機選取字元,最後拼湊出需要的長度 function randomkeys($length)    {       $pattern = '1234567890abcdefg

c#判斷字串是否全部為數字字母

/// <summary> /// 判斷輸入的字串是否只包含數字和英文字母 /// </summary> /// <param name="input"></param>

python生成6位包含數字字母的密碼

初學python,簡單敲了幾行生成6位包含數字和字母密碼的程式碼 (我是在python 3上敲的) 首先理清思路: 1、包含數字和字母的六位口令共有36^6個 2、將0-9和a-z合成一個字串pwd,用pwd[0-35]表示所有數字和小寫字母,即 pwd[0]

C#.NET裏面抽象類接口有什麽區別

end 吃飯 動物 虛方法 根據 自定義 private this sse 1.面向接口編程和面向對象編程是什麽關系 首先,面向接口編程和面向對象編程並不是平級的,它並不是比面向對象編程更先進的一種獨立的編程思想,而是附屬於面向對象思想體系,屬於其一部分。或者說,

JS只能輸入數字數字字母等的正則表達式

符號 正則表達式 value 整數 func undo body 點號 chang 2011-12-07 11:44 JS判斷只能是數字和小數點 0.不能輸入中文1)<input onpaste="return false;" type="text" name="

織夢後臺自定義表單,中文不顯示,數字字母顯示的解決辦法

數字和字母 如果 PE spa templet lsp 文件 html fields 1.找到 找到dede/templets/diy_list.htm 這個文件。 2.找到htmlspecialchars($fields[$field]); 這個位置,請在工具

python3 字串過濾僅保留數字字母

crazystring = ‘dade142.;!0142f[.,]ad’ newStr = ''.join(list(filter(str.isalnum, crazystring) ‘dade1420142fad’)) #紅色字型函式不能少。 只保留數字 >>> fil