我想生成100个介于1和10之间的随机数。但这100个随机数的平均值应该是7。我该怎么做?我正在做如下://generatingrandomnumberRandomrandom=newRandom();intvalue=random.Next(1,10);并将每个值存储在一个数组中。如果数组中100个项目的平均值不是7,那么我需要再获取100个随机数。任何人都可以建议更好的方法吗? 最佳答案 publicintRandomNumberThatAveragesToSeven(){//Chosenbyfairdiceroll//Guar
由于计算机无法选择随机数(它们可以吗?)这个随机数实际上是如何生成的。例如在C#中我们说,Random.Next()里面发生了什么? 最佳答案 您可以结帐thisarticle.根据documentation.NET中使用的具体实现基于DonaldE.Knuth的减法随机数生成器算法。有关详细信息,请参阅D.E.Knuth."TheArtofComputerProgramming,volume2:SeminumericalAlgorithms".Addison-Wesley,Reading,MA,secondedition,1981
我需要生成3个随机数,其数量等于1。我的实现不支持统一分发。:( 最佳答案 只需获得3个随机数,然后计算一个因子,即1/[你的数字之和]。最后将每个随机数乘以该因子。总和将为1。 关于c#-如何生成三个和为1的随机数?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/5563808/
我有一个应用程序,如果我的程序使用具有基于其种子的模式的RNG,它会变得非常引人注目,因为它会根据景观的x坐标构建景观。如果您每次都调用Next(),Random效果很好,但每次使用相同的输入时我都需要能够获得相同的输出,因此可以'依赖Next()。相反,我尝试每次使用输入种子简单地创建一个新的Random。这不是个好主意,我知道,事实证明了。模式非常明显,高值和低值交替出现,整个景观的整体趋势明显。我不想每次都制作新的生成器,但即便如此,我还是研究了加密安全的RandomNumberGenerator看看我是否至少可以暂时使用它。不过,正如预期的那样,我无法为它播种,因此没有任何可重
如何在C#中生成30个1-9之间的随机数,所有这些数加起来等于200(或任意N)?我正在尝试生成一串可以加在一起为N的数字。 最佳答案 我不确定这方面的统计数据是什么,但是,这里的问题是您不想随机选择一个数字,这使得无法通过超调或欠调将N与M个条目相加。以下是我的做法:staticvoidMain(){intcount=30;int[]numbers=getNumbers(count,155);for(intindex=0;indextotal||UPPERBOUNDUPPERBOUND?UPPERBOUND:calc;result
我需要一个C#的Random类实例的种子,我了解到大多数人为此使用当前时间的滴答计数器。但这是一个64位值,种子需要是一个32位值。现在我认为返回int的GetHashCode()方法应该为其对象提供合理分布的值,这可以用来避免仅使用较低的32-滴答计数的位。但是,我找不到有关Int64数据类型的GetHashCode()的任何信息。所以,我知道这无关紧要,但接下来的工作是否会像我想的那样好(我不能试错随机性),或者它可能与使用(int)DateTime.Now.Ticks作为种子?或者它甚至可能更糟?谁能阐明这一点。intseed=unchecked(DateTime.Now.Tic
假设我正在编写一个简单的运气游戏-每个玩家按下Enter键,游戏会为其分配一个1-6之间的随机数。就像一个立方体。游戏结束时,数字最高的玩家获胜。现在,假设我是个骗子。我想编写游戏,让第1号玩家(也就是我)有90%的概率得到6,有2%的概率得到其余的每个数字(1、2、3、4、5)。如何随机生成一个数字,并设置每个数字的概率? 最佳答案 staticRandomrandom=newRandom();staticintCheatToWin(){if(random.NextDouble()另一种可定制的作弊方式:staticintIfYo
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:GeneratingrandomwholenumbersinJavaScriptinaspecificrange如何使用Math.random()或其他方式获得一位随机数(1、2、3、...,而不是0.1、0.2、...或1.0、5.0、...)在JavaScript中?
我需要生成两个不同的随机数,它们不能彼此相等,也不能等于第三个数字。我尝试使用很多if来涵盖所有可能性,但我的算法技能似乎不是那么好。谁能帮我解决这个问题?varnumberOne=Math.floor(Math.random()*4);varnumberTwo=Math.floor(Math.random()*4);varnumberThree=3;//Thisnumberwillnotalwaysbe3if((numberOne==numberThree)&&(numberOne+1这就是我目前所拥有的,下一步将是:if(numberTwo==numberThree){(...)}
Javascript的Math.random()返回一个具有“均匀”分布的伪随机数。我需要在[0,1]范围内生成一个偏向任何一侧的随机数。(意思是,在0或1旁边获得更多数字的可能性更高)理想情况下,我希望有一个参数来设置这条曲线。我想我可以做Math.random^2来得到这样的结果,但是有什么更复杂的方法可以实现这个? 最佳答案 我想你想要betadistributionwithalpha=beta=0.5可以使用逆累积分布将均匀随机数转换为beta分布。unif=Math.random()我不熟悉javascript,但这应该很