草庐IT

random_generator

全部标签

c# - Guid.NewGuid() VS 来自 Random.Next() 的随机字符串生成器

我和我的同事正在讨论使用这些方法中的哪一种来自动生成用户ID和帖子ID以在数据库中进行识别:一个选项使用Random的单个实例,并采用一些有用的参数,因此它可以重复用于各种字符串生成情况(即从4位数字引脚到20位字母数字ID)。这是代码://ThisiscreatedonceforthelifetimeoftheserverinstanceclassRandomStringGenerator{publicconststringALPHANUMERIC_CAPS="ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";publicconststringALPHA_C

c# - C# 中 "static"Random.Next 的正确方法?

为什么我需要创建一个Random类的实例,如果我想创建一个介于1和100之间的随机数......就像Randomrand=newRandom();rand.Next(1,100);Random类是否有任何静态函数可以做同样的事情?喜欢...Random.Next(1,100);我不想不必要地创建一个实例 最佳答案 最佳做法是创建一个Random实例并在整个程序中使用它-否则结果可能不那么随机。不创建静态函数会鼓励这种行为。您不必担心“不必要地创建实例”,其影响充其量可以忽略不计-这就是框架的工作方式。

c# - NHibernate HQL Generator 支持 SQL Server 2016 时态表

我正在尝试在NHibernate4.x中实现对SQLServer2016时态表的基本支持。这个想法是改变SQL语句从SELECT*FROMTablet0到SELECT*FROMTableFORSYSTEM_TIMEASOF'2018-01-1600:00:00't0您可以在SQLServer2016中找到有关时态表的更多信息here不幸的是,我还没有找到任何方法来在表名及其别名之间插入FORFORSYSTEM_TIMEASOF'...'语句。我不确定自定义方言是否支持这一点。我目前唯一可行的解​​决方案是在额外的WHERE中附加FORSYSTEM_TIME语句,我的输出SQL如下所示S

c# - 何时更改 Generate Serialization Assembly 值?

我有一个连接到WCF本地网络服务器的客户端winform应用程序。客户端存在性能问题,我搜索了解决方案并找到了this发布。上面写着:Thissoundsliketheserializationassembliesbeingcreatedatruntime.TrychangingthesettingsoftheSerializationAssemblydropdownatthebottomoftheBuildpaneofthepropertieswindowfortheproject.我的问题是何时更改GenerateSerializationAssembly值以及我应该将其更改为什么

c# - 在多线程应用程序中使用 Random 的正确方法

这个问题在这里已经有了答案:IsC#RandomNumberGeneratorthreadsafe?(16个答案)关闭9年前。好的。这是我知道行不通的:intRand(){//willreturnthesamenumberoverandoveragainreturnnewRandom().Next();}staticRandomrnd=newRandom();intRand(){//ifusedlikethisfrommultiplethreads,rndwilldissintegrate//overtimeandalwaysreturn0returnrnd.Next();}这会正常工

c# - .NET 框架 : Random number generator produces repeating pattern

编辑:这不是重复的,也不是对如何使用随机数生成器的天真误解的结果。谢谢。我似乎在System.Random类生成的数字中发现了一个重复模式。我正在使用“主”随机实例为第二个“主”随机实例生成种子。这个主要的Random实例产生的值表现出重复的模式。特别是,产生的第3个数字非常可预测。下面的程序演示了这个问题。请注意,每次循环都使用不同的种子值。usingSystem;classProgram{staticvoidMain(string[]args){//repeatexperimentwithdifferentmasterRNGsfor(intiMaster=0;iMaster我认为这

c# - 为什么完全使用 C# 类 System.Random 而不是 System.Security.Cryptography.RandomNumberGenerator?

为什么有人会使用来自System.Random的“标准”随机数生成器?完全不用总是使用System.Security.Cryptography.RandomNumberGenerator中的加密安全随机数生成器(或其子类,因为RandomNumberGenerator是抽象的)?NateLawson在13点11分的GoogleTechTalk演讲“CryptoStrikesBack”中告诉我们不要使用来自Python、Java和C#的“标准”随机数生成器,而是使用加密安全版本。我知道随机数生成器的两个版本之间的区别(参见question101337)。但是有什么理由不总是使用安全随机数

c# - 使用 Random 和 OrderBy 是一个好的洗牌算法吗?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭去年。社区在4天前审查了是否重新打开此问题,然后将其关闭:原始关闭原因未解决Improvethisquestion我已阅读anarticle关于各种洗牌算法在CodingHorror.我看到有人在某个地方这样做来洗牌:varr=newRandom();varshuffled=ordered.OrderBy(x=>r.Next());这是一个好的洗牌算法吗?它是如何工作的?这是一种可以接受的方式吗?

c# - 161803398 是一个 'Special' 的数字吗? Math.Random() 内部

我怀疑答案是“因为数学”,但我希望有人能在基本层面提供更多见解...我今天在BCL源代码中翻来覆去,看看我以前使用的一些类实际上是如何实现的。我以前从未想过如何生成(伪)随机数,所以我决定看看它是如何完成的。完整来源:http://referencesource.microsoft.com/#mscorlib/system/random.cs#29privateconstintMSEED=161803398;每次为Random()类播种时都会使用此MSEED值。无论如何,我看到了这个“神奇的数字”——161803398——我完全不明白为什么选择这个数字。它不是素数或2的幂。它不是看起来

C# 5 异步 CTP : why is internal "state" set to 0 in generated code before EndAwait call?

昨天我正在谈论新的C#“异步”功能,特别是深入研究生成的代码是什么样子,以及GetAwaiter()/BeginAwait()/EndAwait()调用。我们详细查看了C#编译器生成的状态机,有两个方面我们无法理解:为什么生成的类包含一个Dispose()方法和一个$__disposing变量,它们似乎从未被使用过(并且该类没有实现IDisposable).为什么在调用EndAwait()之前将内部state变量设置为0,而0通常表示“这是初始入口点”。我怀疑可以通过在异步方法中做一些更有趣的事情来回答第一点,尽管如果有人有任何进一步的信息,我很乐意听到。然而,这个问题更多地是关于第二