gpt4 book ai didi

c# - 随机的效果不好

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:13:45 25 4
gpt4 key购买 nike

我生成一个包含 62 个选项的字符串 ^ 6 个字母 = 56,800,235,584

但是当运行代码时,它重复相同的字符串的次数少于每 200,200 次

这里有什么问题?

顺便说一句:此代码基于答案 here

class Program
{
static void Main(string[] args)
{
var d = new Dictionary<string, bool>();

for (int i = 0; ; i++)
{
var s = GenerateString(6);
try
{
d.Add(s, false);
}
catch (Exception ex)
{
Console.WriteLine(String.Format("{0} - {1} - {2}", i, s, ex.Message));
i = 0;
}
}

Console.ReadKey();
}


static Random _rnd = new Random();
public static string GenerateString(int len)
{
const string bigLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
const string smallLetters = "abcdefghijklmnopqrstuvwxyz";
const string numbers = "1234567890";

var validChars = bigLetters + smallLetters + numbers;

var result = new StringBuilder();

for (int i = 0; i < len; i++)
{
result.Append(validChars[_rnd.Next(validChars.Length)]);
}

return result.ToString();
}
}

最佳答案

随机的都可以。

问题与Birthday paradox有关.当您有 20 万个项目时,其中一个可以重复。

随机字符串不保证总是唯一的结果。要获得独特的结果,您应该使用 GUID

关于c# - 随机的效果不好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34851752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com