Tag: 随机

生成一组特定的随机但唯一的颜色

我想要做的是给我的listView中的每个项目都有一个独特的颜色。 所以我的列表视图中的项目数为’count’ 我的方法是调用下面的方法并给出我的项目的方法编号,然后它应该有一个保存第一种颜色的数组,然后当要生成下一种颜色时,它应该与数组之前的颜色进行比较。 问题是我无法弄清楚我将需要什么样的数组的方法,以及如何比较数组中的每个插入颜色与最后插入的颜色。 这是我的代码: public Color GetUniqueRandomColor(int count){ for(int i = 0; i < count; i++) { Color.FromArgb(randomColor.Next(70, 200), randomColor.Next(100, 225), randomColor.Next(100, 230)); } return Color.Red;} 这是一个元素在数组中的样子: 颜色[A = 255,R = 132,G = 148,B = 181] 正如您所看到的,我的方法仍然缺少所需的数组和算法来比较新插入的颜色。 一些帮助和提示将受到关注!

按钮点击从资源随机播放图片

我有1个图片框,名为studPic 。 我想要的是,当我点击“随机播放”按钮时,从资源中获取随机图像。 private void button2_Click(object sender, EventArgs e) { … } 经过研究,我发现了以下内容 http://social.msdn.microsoft.com/Forums/en-US/Vsexpressvcs/thread/38d36fa4-1f5f-43e9-80f6-3c9a4edc7705/ 我是C#的新手..有没有更简单的方法来实现这个结果? 例如,没有添加图片名称? UPDATE List pictureNames = new List(); pictureNames.Add(“1”); pictureNames.Add(“2”); pictureNames.Add(“3”); int randomPictureIndex = new Random().Next(0, pictureNames.Count); string randomPictureName = pictureNames[randomPictureIndex]; pictureNames.Remove(randomPictureName); Image img = Properties.Resources.randomPictureName; //erroor studPic.Image = img; 获取错误消息错误1’Properties.Resources’不包含’randomPictureName’的定义

随机数发生器将数字吸引到范围内的任何给定数字?

我试图想出一个随机数生成器,它返回一个介于0和1之间的浮点值,以一个方向或另一个方向对返回值进行加权。 是否有任何可靠的方法来传递两个数字,比如Random(0.5),其中’0.5’表示0到1之间的数字将被吸引到0.5。

在两个值之间获得n个不同的随机数,这两个值的总和等于给定的数字

我想在一个范围内找到不同的随机数,总和达到给定的数字。 注意:我在stackoverflow中发现了类似的问题,但是它们并没有解决这个问题(即它们不考虑范围的负lowerLimit)。 如果我想要我的随机数的总和等于1,我只需生成所需的随机数,计算总和并将它们除以总和; 但是在这里我需要一些不同的东西; 我需要我的随机数加起来不同于1而且我的随机数必须在给定范围内。 示例:我需要在-50和50之间的30个不同的随机数(非整数),其中30个生成的数字的总和必须等于300; 我编写了下面的代码,但是当n远大于范围(upperLimit – lowerLimit)时它不起作用,函数可以返回范围[lowerLimit – upperLimit]之外的数字。 有什么帮助改善现有的解决方案? static void Main(string[] args) { var listWeights = GetRandomNumbersWithConstraints(30, 50, -50, 300); } private static List GetRandomNumbersWithConstraints(int n, int upperLimit, int lowerLimit, int sum) { if (upperLimit <= lowerLimit || n < 1) throw new ArgumentOutOfRangeException(); Random rand = new Random(Guid.NewGuid().GetHashCode()); List weight […]

如何使用RNGCryptoServiceProvider生成Bridge手?

Bridge的游戏是用52种不同的扑克牌进行的,这些扑克牌随机分布在四个玩家中,每个玩家最终得到13张牌:一个所谓的“交易”。 大约只有不到2 ^ 96的Bridge交易是可能的 。 在本文档中,生成随机交易的程序的要求描述如下: 该软件应该能够生成所有可能的桥接协议,因为这也可以通过手动处理实现。 软件应该以相同的概率生成每笔交易,而不受董事会编号,之前的手或任何其他情况的影响。 即使在会议中看到所有其他交易之后,也无法预测交易。 本文继续说明伪随机生成器不能用于生成交易,因为看到伪随机序列的第一个元素将使得计算所使用的种子成为可能,从而使黑客能够预测将要跟随的交易。 此外,由于大多数伪随机生成器采用32位的种子,因此应该遵循这些生成器将能够产生最多2 ^ 32个不同的桥接交易,而不是所需的2 ^ 96,并且遵循所谓的生日悖论 ,在2 ^ 32交易的平方根之后,可能会产生相同的交易。 描述Bridge交易生成应用程序要求的文档的作者编写了一个程序,在世界范围内用于生成随机交易,使用键盘上的人类输入生成96位种子。 十四年来,这种方法没有出现任何缺陷。 我想编写一个例程,放弃使用人工输入来生成所需种子的需要。 来自RNGCryptoServiceProvider 。 我使用下面的代码来生成随机数,首先在1到52的范围内,然后在1到51的范围内,依此类推,直到剩下一张卡。 测试得到的交易我非常有信心这个代码能够以相同的概率产生任何交易能力,并且任何一张卡最终与四个玩家之一的机会等于0.25。 但由于我不知道RNGCryptoServiceProvider中使用的种子的强度,我想知道是否: 此代码将能够或可以适应生成2 ^ 96个不同的交易。 这段代码的下一笔交易不可预测。 编辑获得此问题中先前提到的随机数的方法存在缺陷。 如果这个代码能够产生2 ^ 96个不同的Bridge交易,这就分散了主要问题。 我用随机数字生成器替换了Stephen Taub和Shawn Farkas在MSDN杂志上发布的那个 用于生成加密安全随机数的代码,范围为1-52,1-51,依此类推,最高可达1-2,取自本网站 /// /// Returns a random number within a specified range. /// /// /// A 32-bit signed integer […]

生成(U)Int64和Decimal的(伪)随机约束值

注意:为简洁起见,以下内容无法区分随机性和伪随机性。 此外,在此上下文中, 约束意味着给定的最小值和最大值之间 ) System.Random类提供整数,双精度和字节数组的随机生成。 使用Random.Next,可以很容易地生成布尔,Char,(S)字节,(U)Int16,(U)Int32类型的随机约束值。 使用Random.NextDouble() ,可以类似地生成Double和Single类型的约束值(就我对这种类型的理解而言)。 随后的字符串生成(给定长度和字母表) 也 已被 解决 。 考虑剩余的原始数据类型(不包括Object):Decimal和(U)Int64。 它们的随机生成也已被解决( Decimal , (U)Int64使用Random.NextBytes() ),但Random.NextBytes() 。 理论上可以使用拒绝采样(即循环直到生成的值是所需范围),但这显然不是一个实际的解决方案。 规范化NextDouble()将无效,因为它没有足够的有效数字。 简而言之,我要求正确实现以下function: long NextLong(long min, long max) long NextDecimal(decimal min, decimal max) 请注意,由于System.DateTime基于ulong,因此第一个函数也允许随机约束生成此类结构(类似于此处 ,仅在刻度而不是分钟内)。

如何实现非随机的随机数生成器?

我需要一个随机数生成器,它在n和m之间产生不同的数字,但是没有相同的概率。 我想在n和m之间设置一个值x,其中可能性最高: 使用Random类有一种简单的方法吗? 可能性应该具有二项式分布或类似的forms(其精确的二项式分布并不重要,粗略近似也可以) 编辑 也许我必须澄清:我不是在寻找二分法或高斯分布,而是在寻找这样的东西: 我想定义值x应该是最高可能性的值。 编辑 不幸的是,我之前接受的答案似乎并不起作用 。 所以我还在寻找答案!

.NET 3中System.Random的随机性如何?

我目前正在编写一个简单的密码生成器(C#)。 为此,我需要一些随机数字。 是否可以简单地使用.NET附带的Random类或者是否存在任何已知问题?

如果没有Thread.Sleep(300),如何在这个类中获得真正的随机性?

我已经创建了一个类(下面的代码)来处理在测试中创建“匹配”测验项,这是输出: 它工作正常。 但是,为了使它完全随机 ,我必须让线程在两列的随机改组之间至少hibernate 300次,任何低于300的值都会返回以相同顺序排序的两列,就好像它正在使用随机的相同种子: LeftDisplayIndexes.Shuffle(); Thread.Sleep(300); RightDisplayIndexes.Shuffle(); 如果没有这段时间等待,我需要做什么才能完全随机地移动两列? 完整代码: using System.Collections.Generic; using System; using System.Threading; namespace TestSort727272 { class Program { static void Main(string[] args) { MatchingItems matchingItems = new MatchingItems(); matchingItems.Add(“one”, “111”); matchingItems.Add(“two”, “222”); matchingItems.Add(“three”, “333”); matchingItems.Add(“four”, “444”); matchingItems.Setup(); matchingItems.DisplayTest(); matchingItems.DisplayAnswers(); Console.ReadLine(); } } public class MatchingItems { public List Collection { get; […]

如何在C#中生成随机命名的文本文件?

我必须创建一个循环来生成一个5个随机选择的字母字符串,然后在该名称下创建一个文本文件,让我们在C://中说,我该怎么做? 生成名称和在目录中创建文件。 我想我必须从ascii代码中选择5个随机数将它们添加到一个数组中,然后将它们转换为相应的字符,以便能够将其用作名称。 我会如何将它们转换为角色并用它们组成一个字符串,你能帮助我吗?