Tag: 随机

如何在C#中生成一个随机的10位数字?

我正在使用C#,我需要生成一个随机的10位数字。 到目前为止,我很幸运找到了表明最小值的例子。 我如何生成一个10位数的随机数,可以从0开始,(最初,我希望是random.Next(1000000000,9999999999)但我怀疑这是我想要的)。 我的代码现在看起来像这样: [WebMethod] public string GenerateNumber() { Random random = new Random(); return random.Next(?); } **更新结束了这样做, [WebMethod] public string GenerateNumber() { Random random = new Random(); string r = “”; int i; for (i = 1; i < 11; i++) { r += random.Next(0, 9).ToString(); } return r; }

具有固定平均值的随机数

我想在1到10之间生成100个随机数。但是这100个随机数的平均值应该是7.我怎么能这样做? 我这样做: //generating random number Random random = new Random(); int value = random.Next(1,10); 并将每个值存储在一个数组中。 如果数组中100个项目的平均值不是7,那么我需要再获得100个随机数。 谁能建议更好的方法呢?

每次运行应用程序时生成相同数字的随机数生成器

我知道有很多次这个问题已经提出,但这些解决方案都不适用于我。 首先,我在我的方法中做了这个名为RandomNumGenerator(items) List randNum = new List(); foreach (var item in items) { randNum.Add(new Random(1000).Next()); } 这总是给了我相同的数字,然后在看了这个答案之后我做了这个: Random rnd = new Random(1000); foreach (var item in items) { randNum.Add(rnd.Next()); } 这给了我以下数字 325467165 506683626 1623525913 2344573 1485571032 现在虽然循环的每次迭代都没问题,但问题是,当我停止并重新运行应用程序时,我得到了我之前重新获得的相同数字。 325467165 506683626 1623525913 2344573 1485571032 这是在调试期间的行为,还是每次调用RandomNumGenerator都会出现相同的问题?

在C#中生成随机盐的最佳方法?

问题就是这样,在C#中生成随机盐(与哈希函数一起使用)的最佳方法是什么?

两种不同的种子产生相同的“随机”序列

也许对此有一个非常逻辑的解释,但我似乎无法理解为什么种子0和2,147,483,647使用.NET的随机类(系统)产生相同的“随机”序列。 快速代码示例: var random1 = new Random(0); var random2 = new Random(1); var random3 = new Random(int.MaxValue); //2,147,483,647 var buffer1 = new byte[8]; var buffer2 = new byte[8]; var buffer3 = new byte[8]; random1.NextBytes(buffer1); random2.NextBytes(buffer2); random3.NextBytes(buffer3); for (int i = 0; i < 8; i++) { Console.WriteLine("{0}\t\t{1}\t\t{2}", buffer1[i], buffer2[i], buffer3[i]); } 输出: 26 70 26 […]

如何使用Linq获取随机对象

我想在linq中获取一个随机对象。 我是这样做的。 //get all the answers var Answers = q.Skip(1).Take(int.MaxValue); //get the random number by the number of answers int intRandomAnswer = r.Next(1, Answers.Count()); int count = 0; //locate the answer foreach(var Answer in Answers) { if (count == intRandomAnswer) { SelectedPost = Answer; break; } count++; } 这是最好的方法吗?

这是生成一串随机字符的好方法吗?

我发现这段代码生成了一串随机字符。 但有没有更优雅/更快/更可靠的方式来做到这一点? 这似乎依赖于在给定当前编码的情况下数字26-91是有效字符的事实。 /// /// Generates a random string with the given length /// /// Size of the string /// If true, generate lowercase string /// Random string private string RandomString(int size, bool lowerCase) { StringBuilder builder = new StringBuilder(); Random random = new Random(); char ch; for(int i = 0; i < size; i++) […]

生成随机加权值

编辑:我已经重写了这个问题,希望目标更加清晰。 这是这个问题的一个扩展问题,我非常喜欢这个答案提供的function。 在上面的答案中,人们能够设定击中极端的概率,较高的数字产生较低数字的概率,反之亦然。 问题是我必须设定3组的概率。 这些组是最低值(LV),最高值(HV)和中间值(MV)。 但是,为了简化请求,我们可以考虑EVP=HVP=LVP 。 给定任何范围,HV / LV应基于指定的EVP出现,并且当您从每个极端的范围内进展/下降时,该范围中下一个值的概率将根据EVP之间的距离增加或减少。和MVP。 使用1-6的示例范围,1和6的加权为5%(EVP),概率差为1/6为5%,2/4为15%,3/4为30%(MVP) ),总计100%。 反过来也应该是可能的,交换EVP和MVP应产生下图的反转。 这是一张我希望能传达给定例子预期结果的图像。 中等重量: 额外奖励:如果我能够单独设置HVP和LVP产生类似于下图的结果,那将是最优秀的( 注意:图表不符合上述规范 )。 中等加权(奖金): 谢谢!

如何从整数范围生成正态分布随机?

给定整数范围的开始和结束,如何计算此范围之间的正态分布随机整数? 我意识到正态分布进入 – +无穷大。 我猜尾巴可以被截断,所以当一个随机变量超出范围时,重新计算。 这提高了范围内整数的概率,但只要这种效果是可以容忍的(<5%),就可以了。 public class Gaussian { private static bool uselast = true; private static double next_gaussian = 0.0; private static Random random = new Random(); public static double BoxMuller() { if (uselast) { uselast = false; return next_gaussian; } else { double v1, v2, s; do { v1 = 2.0 * […]

C#随机生成

我刚刚在线传递了这篇文章: C#Corner和C#Corner以及他的文章(拥有超过13年经验的软件开发人员)建议使用System.Random ,如下所示: private int RandomNumber(int min, int max) { Random random = new Random(); return random.Next(min, max); } 这不是每次给他相同的号码吗? 编辑: 所以我的问题将变成:随机选择种子如何? 恒定或当前时间值? 谢谢