首頁 > 後端開發 > C++ > 為什麼我的隨機字串產生器返回相同的字串?

為什麼我的隨機字串產生器返回相同的字串?

DDD
發布: 2025-01-05 00:57:39
原創
350 人瀏覽過

Why Does My Random String Generator Return Identical Strings?

傳回相同字串的隨機字串產生器

您的目標是產生兩個不同的隨機字串,每個字串包含四個字元。但是,您目前的程式碼會產生兩個相同的字串。

問題源自於在 RandomString 方法中建立新的 Random 實例。由於每次呼叫都會初始化該實例,因此它會產生相同的隨機數序列,從而導致重複的字串。

解決方案:

為了確保兩個字串唯一,我們需要確保 Random 實例只建立一次。我們可以透過讓實例靜態並使用種子值初始化它來做到這一點,例如當前時間(以刻度為單位):

private static Random random = new Random((int)DateTime.Now.Ticks);
登入後複製

透過使實例靜態並使用種子,我們確保隨機數每次呼叫RandomString 方法的序列都是不同的,如下面修改後的程式碼所示:

private static Random random = new Random((int)DateTime.Now.Ticks);//thanks to McAden
private string RandomString(int size)
{
    StringBuilder builder = new StringBuilder();
    char ch;
    for (int i = 0; i < size; i++)
    {
        ch = Convert.ToChar(Convert.ToInt32(Math.Floor(26 * random.NextDouble() + 65)));                 
        builder.Append(ch);
    }

    return builder.ToString();
}

// get 1st random string 
string Rand1 = RandomString(4);

// get 2nd random string 
string Rand2 = RandomString(4);

// creat full rand string
string docNum = Rand1 + "-" + Rand2;
登入後複製

透過此修改,您的程式碼現在每次都會產生兩個不同的隨機字串被處決。

以上是為什麼我的隨機字串產生器返回相同的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板