当您使用System.Random类时,您必须为其创建一个实例。为什么它不是static?因为如果我想要一个0到9之间的随机数,我可以使用静态方法,System.Random.Next(int,int):intourRandomNumber=Random.Next(0,9);那么为什么这个类不是static呢? 最佳答案 如果它是静态的,您将无法使用不同的种子-Random实例会跟踪该状态。默认情况下,Random使用当前时间作为种子,但重新使用特定种子(即newRandom(42))允许您精确地重复随机数序列-它们将始终相同同一个
有人可以向我指出一种更简洁的方法来生成随机枚举成员。这有效但看起来很丑。谢谢!publicTRandomEnum(){string[]items=Enum.GetNames(typeof(T));Randomr=newRandom();stringe=items[r.Next(0,items.Length-1)];return(T)Enum.Parse(typeof(T),e,true);} 最佳答案 publicTRandomEnum(){T[]values=(T[])Enum.GetValues(typeof(T));retur
有人可以向我指出一种更简洁的方法来生成随机枚举成员。这有效但看起来很丑。谢谢!publicTRandomEnum(){string[]items=Enum.GetNames(typeof(T));Randomr=newRandom();stringe=items[r.Next(0,items.Length-1)];return(T)Enum.Parse(typeof(T),e,true);} 最佳答案 publicTRandomEnum(){T[]values=(T[])Enum.GetValues(typeof(T));retur
我正在尝试创建一个方法,从我的字典中返回一张卡片的名称随机。我的字典:第一个定义的卡片名称是字符串,第二个是该卡片的值,它是int。publicstaticDictionary_dict=newDictionary(){{"7",7},{"8",8},{"9",9},{"10",10},{"J",1},{"Q",1},{"K",2},{"A",11}};方法:random是一个随机生成的int。publicstringgetCard(intrandom){returnKarta._dict(random);}所以问题是:Cannotconvertfrom'int'to'string'谁
我正在尝试创建一个方法,从我的字典中返回一张卡片的名称随机。我的字典:第一个定义的卡片名称是字符串,第二个是该卡片的值,它是int。publicstaticDictionary_dict=newDictionary(){{"7",7},{"8",8},{"9",9},{"10",10},{"J",1},{"Q",1},{"K",2},{"A",11}};方法:random是一个随机生成的int。publicstringgetCard(intrandom){returnKarta._dict(random);}所以问题是:Cannotconvertfrom'int'to'string'谁
我只知道如何生成随机boolean值(真/假)。默认概率为50:50但是我怎样才能用我自己的概率生成真假值呢?假设它以40:60或20:80等的概率返回true... 最佳答案 一种方法是检查Random.Next(100)的返回值是否小于您期望的概率。不过,我不能说这种方法的真正“随机性”。正确的例子,使用20%的期望概率:Randomgen=newRandom();intprob=gen.Next(100);returnprob 关于c#-生成随机boolean概率,我们在Stack
我只知道如何生成随机boolean值(真/假)。默认概率为50:50但是我怎样才能用我自己的概率生成真假值呢?假设它以40:60或20:80等的概率返回true... 最佳答案 一种方法是检查Random.Next(100)的返回值是否小于您期望的概率。不过,我不能说这种方法的真正“随机性”。正确的例子,使用20%的期望概率:Randomgen=newRandom();intprob=gen.Next(100);returnprob 关于c#-生成随机boolean概率,我们在Stack
我尝试做的是生成一个随机int值数组,其中的随机值介于最小值和最大值之间。到目前为止,我想出了这段代码:intMin=0;intMax=20;int[]test2=newint[5];RandomrandNum=newRandom();foreach(intvalueintest2){randNum.Next(Min,Max);}但它还没有完全发挥作用。我想我可能只遗漏了1行之类的东西。谁能帮我把我推向正确的方向? 最佳答案 您永远不会在test2数组中分配值。您已经声明了它,但所有值都将为0。以下是如何在指定间隔内为数组的每个元素
我尝试做的是生成一个随机int值数组,其中的随机值介于最小值和最大值之间。到目前为止,我想出了这段代码:intMin=0;intMax=20;int[]test2=newint[5];RandomrandNum=newRandom();foreach(intvalueintest2){randNum.Next(Min,Max);}但它还没有完全发挥作用。我想我可能只遗漏了1行之类的东西。谁能帮我把我推向正确的方向? 最佳答案 您永远不会在test2数组中分配值。您已经声明了它,但所有值都将为0。以下是如何在指定间隔内为数组的每个元素
我已经搜索了一段时间并一直在努力寻找这个,我试图生成几个随机的、唯一的数字是C#。我正在使用System.Random,并且我正在使用DateTime.Now.Ticks种子:publicRandoma=newRandom(DateTime.Now.Ticks.GetHashCode());privatevoidNewNumber(){MyNumber=a.Next(0,10);}我定期调用NewNumber(),但问题是我经常收到重复的数字。有人建议因为我每次都在声明随机数,它不会产生随机数,所以我把声明放在我的函数之外。有什么建议或比使用System.Random更好的方法吗?谢谢