Tag: 随机

分布式概率随机数发生器

我想根据分布式概率生成一个数字。 例如,只是说每个数字有以下几种情况: Number| Count 1 | 150 2 | 40 3 | 15 4 | 3 with a total of (150+40+15+3) = 208 then the probability of a 1 is 150/208= 0.72 and the probability of a 2 is 40/208 = 0.192 如何根据此概率分布创建一个返回数字的随机数生成器? 我很高兴现在基于静态的硬编码集,但我最终希望它从数据库查询中获得概率分布。 我见过类似这样的例子,但它们不是很通用。 有什么建议?

是否有任何工具用随机数据填充类属性?

我想要做的是创建一个具有不同属性的属性的类,将该类传递给另一个将使用适当的随机数据设置属性的类…这里是伪代码: public class Customer { [Attribute(“FirstName”)] private string CustomerFirstName; public {get;set} //etc [Attribute(“LastName”)] private string CustomerLastName; public {get;set;} //etc [Attribute(“DateTime”)] private DateTime CustomerSignUpDate; public DateTime {get;set;} //yadda [Attribute(“Phone”)] private string CustomerPhone; public string {get;set;} //yadda } 然后这样做 IList CustomerList=ClassFillerOutClass(new Customer(),5); 结果将是5个客户的列表,其属性中具有适当的“随机”数据。 如果这不存在……我想我可以自己开始一个项目……如果没有必要,我只是不想重新发明轮子。 编辑:我忘了一块。 我想用它作为测试工具。 因此,在上面的示例中,我可以快速创建一个包含随机但适当值的5个客户的列表。 然后说把它传递给我的持久性方法,并且有一些我可以检查的东西。 我试图避免每次为TDD目的手动创建一个填充的对象。 编辑2:好的,所以我开始自己开始…我将在本周末将它发布在Codeplex上并在此处链接…我显然不会这样做但是如果其他人想要继续工作它将会是一个开始它。

如何生成唯一的字母数字?

如何使用c#始终生成17个字符的唯一字母数字数据。

随机不是随机的

我使用Random来生成一个随机数序列。 我只构造一次随机对象,然后在循环内生成随机值(其中300个)。 问题是,一旦我得到所有的值并对它们进行排序,我就会发现它们中的一些是相同的和/或顺序的:我生成的数字从0到50000。 这是我的脚本: Random rnd = new Random(); for (int n=0; n < 300; n++) { int RndNumber = rnd.Next(0, 50000); System.Threading.Thread.Sleep(3); } 有人可以知道为什么会发生这种情况,我该如何改进它以使其更随机?

在C#中播种伪随机数生成器

我需要一个C#的Random类实例的种子,我读到大多数人使用当前时间的ticks计数器。 但这是一个64位值,种子需要是32位值。 现在我认为返回int的GetHashCode()方法应该为其对象提供合理分布的值,这可以用于避免仅使用滴答计数的低32位。 但是,我找不到任何关于Int64数据类型的GetHashCode()的信息。 所以,我知道它并不重要,但是下面的工作会像我想的那样好(我不能试错法随机性),或者它的工作原理与使用(int)DateTime.Now.Ticks作为种子? 或者甚至可能更糟糕? 谁可以对此有所了解。 int seed = unchecked(DateTime.Now.Ticks.GetHashCode()); Random r = new Random(seed); 编辑:为什么我需要种子而不只是让Random()构造函数完成工作? 我需要将种子发送给使用相同种子的其他客户端进行相同的随机序列。

C#中“静态”Random.Next的正确方法?

为什么我需要创建一个Random类的实例,如果我想创建1到100之间的随机数….就像 Random rand = new Random(); rand.Next(1,100); Random类是否有任何静态函数来做同样的事情? 喜欢… Random.Next(1,100); 我不想不必要地创建一个实例

RNGCryptoServiceProvider – 随机数查看

在寻找生成真正随机数的最佳尝试时,我偶然发现了这个代码示例。 在这个片段上寻找意见。 using System; using System.Security.Cryptography; private static int NextInt(int min, int max) { RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] buffer = new byte[4]; rng.GetBytes(buffer); int result = BitConverter.ToInt32(buffer, 0); return new Random(result).Next(min, max); } 资料来源: http : //www.vcskicks.com/code-snippet/rng-int.php 这比使用滴答计数种子更受欢迎,例如: Random rand = new Random(Environment.TickCount); rand.Next(min, max); 注意: 我不是在寻找第三方随机数据提供者,例如Random.org ,因为这种依赖对应用程序来说是不现实的。

在C#中使用真正的随机数生成器最快的实现

我正在阅读有关Random.Next()的信息 ,“适用于创建随机密码的加密安全随机数”MSDN建议使用RNGCryptoServiceProvider类 什么速度的阴谋? 获得真正的随机数有一些最快的方法吗? 编辑:使用Random.Next()我得到一个新的随机数。 与… byte[] randomNumber = new byte[1]; RNGCryptoServiceProvider Gen = new RNGCryptoServiceProvider(); Gen.GetBytes(randomNumber); int rand = Convert.ToInt32(randomNumber[0]); 我得到一个“加密安全的随机数”我想知道如果上面的代码与“Random.Next()”比较快,如果有一些快速的方法来获得相同的结果,好吗?

范围之间的随机日期时间 – 不统一输出

我实现了下面的RandomDate,但我总是让值关闭到“从”日期,我可能会错过这里的东西…. public static DateTime GetRandomDate(DateTime from, DateTime to) { var range = new TimeSpan(to.Ticks – from.Ticks); var rnd = new Random(); var randTimeSpan = new TimeSpan((long)(range.TotalSeconds – rnd.Next(0, (int)range.TotalSeconds))); return from + randTimeSpan; }

Random.Next()有时会在不同的线程中返回相同的数字

我有以下课程 class Program { static Random _Random = new Random(); static void Main(string[] args) { … for (int i = 0; i < no_threads; ++i) { var thread = new Thread(new ThreadStart(Send)); thread.Start(); } … } static void Send() { … int device_id = _Random.Next(999999); … } } 代码创建指定数量的线程,启动每个线程,并为每个线程分配一个随机的device_id 。 出于某种原因,创建的前两个线程通常具有相同的device_id 。 我无法弄清楚为什么会这样。