溫馨提示×

C#中如何確保隨機數的唯一性

c#
小樊
130
2024-08-29 05:02:42
欄目: 編程語言

在C#中,要確保生成隨機數的唯一性,可以使用以下方法:

  1. 使用HashSet存儲已生成的隨機數:
using System;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        HashSet<int> uniqueRandomNumbers = new HashSet<int>();
        Random random = new Random();

        while (uniqueRandomNumbers.Count < 10) // 生成10個唯一的隨機數
        {
            int randomNumber = random.Next(1, 100); // 生成1到99之間的隨機數
            uniqueRandomNumbers.Add(randomNumber);
        }

        foreach (int number in uniqueRandomNumbers)
        {
            Console.WriteLine(number);
        }
    }
}
  1. 使用Guid:
using System;

class Program
{
    static void Main()
    {
        for (int i = 0; i < 10; i++)
        {
            Guid uniqueId = Guid.NewGuid();
            Console.WriteLine(uniqueId);
        }
    }
}

Guid是全局唯一標識符,它的生成算法可以確保在全球范圍內的唯一性。但請注意,Guid并不是純數字,而是一個包含字母和數字的字符串。

  1. 使用時間戳:
using System;

class Program
{
    static void Main()
    {
        DateTime currentTime = DateTime.Now;
        long uniqueTimestamp = currentTime.Ticks;
        Console.WriteLine(uniqueTimestamp);
    }
}

時間戳是自1970年1月1日以來的毫秒數,因此它在全球范圍內是唯一的。但是,如果在同一毫秒內生成多個時間戳,它們可能會重復。為了解決這個問題,可以將時間戳與其他信息(如計算機名稱、進程ID等)結合起來。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女